<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>SharePoint Solutions Blog</title><link>http://sharepointsolutions.blogspot.com/</link><description>SharePoint Solutions is a training, consulting and software firm specializing in the application of Microsoft?s SharePoint Products and Technologies. We are a Microsoft Gold Certified Partner based in Nashville, Tennessee and work with clients throughout the U.S.</description><language>en</language><managingEditor>noreply@blogger.com (Jeff Cate)</managingEditor><lastBuildDate>Thu, 02 Jul 2009 09:52:27 PDT</lastBuildDate><generator>Blogger</generator><atom:id xmlns:atom="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-7192910</atom:id><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">165</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">25</openSearch:itemsPerPage><geo:lat>36.007373</geo:lat><geo:long>-86.791217</geo:long><image><link>http://sharepointsolutions.blogspot.com</link><url>http://sharepointsolutions.com/img/logo3.gif</url><title>SharePoint Solutions</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/SharepointSolutionsBlog" type="application/rss+xml" /><feedburner:emailServiceId>SharepointSolutionsBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Why NOW is the Best Time to Get Started Developing SharePoint Designer Workflows</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/vIr_4GwrEiQ/why-now-is-best-time-to-get-started.html</link><author>noreply@blogger.com (Ricky Spears)</author><pubDate>Thu, 02 Jul 2009 09:52:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-8166725151733379028</guid><description>&lt;p&gt;Regardless of the size of your organization, you are certainly looking for ways to save money in these difficult and uncertain economic times. That’s one of the reasons SharePoint has remained extremely popular during our present economic downturn—companies are only investing in those areas they know will provide huge returns quickly. &lt;/p&gt;  &lt;p&gt;One of the areas where SharePoint, even the free WSS (Windows SharePoint Services), can quickly provide very high returns for your company is in the area of no-code workflows created with SharePoint Designer. Here are some of the reasons why:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. SharePoint Designer Workflows are Easy to Write&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;When I started college back in 1985 one of my professors told me that in five years all programming would be plain-English programming, “You’ll just sit down in front of your computer and tell it what you want.” Well, 1990 came and went and here we are 19 years later. If you’ve seen C# code, then you know that all programming isn’t plain-English programming.&lt;/p&gt;    &lt;p&gt;Workflows written with SharePoint Designer are the closest thing I’ve ever seen to plain-English programming. Everything you add to your workflow—and most of the configurations—are just selecting things from drop-down boxes and lists. There is no complicated syntax to learn or lists of command and functions to memorize. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;2. SharePoint Designer Workflows Can Be Written by the Business Users Who Are Close to the Business Process&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Once your organization has identified a particular business process that could benefit from some automation, you will usually either hire an outside programmer to write a customized program, or make use of a programmer inside your company. These programmers are usually very costly to hire and employ—they are also usually far removed from the business process you want to automate.&lt;/p&gt;    &lt;p&gt;For example, let’s assume that you work in your company’s purchasing department. When an employee needs you to order something, she fills out a paper requisition form and send it to you via inter-office mail. When you get it, you contact her manager for approval. If it’s over a certain dollar amount, you may also need to get the approval of manager’s manager. Once you’ve received all the necessary approvals, you order the item and then communicate the expected delivery information to the person who requested it. If the requestor wants an update on the status, they call you, you get the information, then you call the requestor back with the information. On top of all this, you periodically call the requestor to see if the item has arrived so you can take it off your radar for tracking. If it’s late, you’ll need to contact the supplier. There is a lot of communication and tracking going on in this scenario. &lt;/p&gt;    &lt;p&gt;You realize that your job could be a lot easier—and you could do more important work—if this process of requesting, approving, tracking, and communicating could be automated. So your company contracts a computer programmer to write a system to handle all this. After a few good meetings this programmer will eventually be able to understand the technical mechanics of your process. However, she probably will never fully understand how this process affects the entire company and how it is a component of the culture of your organization—only someone close to the business process understands those things.&lt;/p&gt;    &lt;p&gt;It would be so much better if you, as the business user who has the full understanding of this process, could be the one to also automate the process. Because Microsoft designed SharePoint Designer workflows to be a tool for information workers and end users to use to automate their business processes, you can take control of the automation process without bringing in a costly programmer that doesn’t understand the full ramifications of the process. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;3. SharePoint Designer Is Now FREE!&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;So, how much would you pay for a program that allowed your business users to automate business processes in near plain-English? $299.95? That’s what you would have paid a few months ago. However, Microsoft recently made SharePoint Designer 2007 available as a free download. It’s no longer cost prohibitive to allow end users to have access to this powerful program.&lt;/p&gt;    &lt;p&gt;To get started writing your own workflows, &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=baa3ad86-bfc1-4bd4-9812-d9e710d44f42"&gt;download SharePoint Designer 2007 for free now.&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;4. There Are Lots of Great FREE Resources on SharePoint Designer Workflows&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Have you visited our &lt;a href="http://sharepointsolutions.com/resourcecenters/Pages/SharePoint-Workflow.aspx"&gt;SharePoint Workflow Resource Center&lt;/a&gt; yet? If not, you really need to. You’ll find lots of information here including whitepapers, recorded webinars and demos, links to our best blog posts on SharePoint Designer workflows, a sample module from on of our workflow training courses, case studies, and much, much more. You really owe it to yourself to spend some time browsing this resource center.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;5. Instructor-Led SharePoint Designer Workflow Training Is Very Affordable&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Although SharePoint Designer workflows are easy to write, it’s likely that new users will benefit from some training where they get hands-on experience with help from an expert instructor. After all, the best way to learn to write workflows is, well, by writing workflows. In our workflow class, students write very practical workflows that they can also use in their own organization for things like handling supply requisitions, reserving equipment, and routing forms for digital signature approval—with time limits.&lt;/p&gt;    &lt;p&gt;We currently have two opportunities for instructor-led SharePoint Designer Workflow training:&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Our most affordable option is the 5-day online class: &lt;a href="http://sharepointsolutions.com/SharePoint-Training/Courses/Pages/Essential-SharePoint-Workflow.aspx?CourseTitle=Essentials%20of%20InfoPath%20and%20SharePoint%20Workflows%20%28Online%20Live%29"&gt;Essentials of InfoPath and SharePoint Workflows&lt;/a&gt;. It’s only $1,495 and students can attend from their own desks at work or home with a morning session of live lecture, demo, and interactive questions and answer. The afternoon consists of lab exercises with instructors available to assist and answer questions. We still have a few spots open in this class for the weeks of &lt;a href="http://sharepointsolutions.com/SharePoint-Training/Pages/web-class-details.aspx?ClassID=150&amp;amp;city=Your%20Desk&amp;amp;location=Online%20Live%20Training&amp;amp;CourseTitle=Essentials%20of%20InfoPath%20and%20SharePoint%20Workflows%20(Online%20Live)&amp;amp;RegOnline=745655&amp;amp;FormURL="&gt;July 27th&lt;/a&gt; and &lt;a href="http://sharepointsolutions.com/SharePoint-Training/Pages/web-class-details.aspx?ClassID=151&amp;amp;city=Your%20Desk&amp;amp;location=Online%20Live%20Training&amp;amp;CourseTitle=Essentials%20of%20InfoPath%20and%20SharePoint%20Workflows%20(Online%20Live)&amp;amp;RegOnline=745657&amp;amp;FormURL="&gt;August 24th&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;For those wanting deeper and more comprehensive training, we offer our 4-day classroom training class: &lt;a href="http://sharepointsolutions.com/SharePoint-Training/Courses/Pages/InfoPath-Workflow.aspx?CourseTitle=Mission:%20Automation%20%E2%80%93%20SharePoint%20Workflow%20and%20InfoPath"&gt;Mission: Automation – SharePoint Workflow and InfoPath&lt;/a&gt;. This class is $2,395 but will go much deeper into what you can do with both InfoPath and SharePoint Designer workflows. We still have a few openings in our &lt;a href="http://sharepointsolutions.com/SharePoint-Training/Pages/Class-Details.aspx?ClassID=140&amp;amp;city=Dallas&amp;amp;location=SharePoint%20Solutions%20Training%20Center%20-%20Richardson,%20TX&amp;amp;CourseTitle=Mission:%20Automation%20%E2%80%93%20SharePoint%20Workflow%20and%20InfoPath&amp;amp;RegOnline=731335&amp;amp;FormURL="&gt;July 21st class in Dallas, TX&lt;/a&gt;; our &lt;a href="http://sharepointsolutions.com/SharePoint-Training/Pages/Class-Details.aspx?ClassID=142&amp;amp;city=Nashville&amp;amp;location=SharePoint%20Solutions%20Training%20Center%20-%20Brentwood,%20TN&amp;amp;CourseTitle=Mission:%20Automation%20%E2%80%93%20SharePoint%20Workflow%20and%20InfoPath&amp;amp;RegOnline=735759&amp;amp;FormURL="&gt;August 18th class in Nashville, TN&lt;/a&gt;; and our &lt;a href="http://sharepointsolutions.com/SharePoint-Training/Pages/Class-Details.aspx?ClassID=149&amp;amp;city=Chicago&amp;amp;location=Microtek%20Computer%20Training%20Center%20-%20Oak%20Brook,%20IL&amp;amp;CourseTitle=Mission:%20Automation%20%E2%80%93%20SharePoint%20Workflow%20and%20InfoPath&amp;amp;RegOnline=743470&amp;amp;FormURL="&gt;September 15th class in Chicago, Il&lt;/a&gt;. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;6. The Things You Can Automate Are Practically Limitless&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Every business must have business process to function properly. It’s likely that a large number of those processes could benefit from SharePoint Designer workflow automation. A great place to get ideas for identifying processes for automation is our free whitepaper: &lt;a href="http://info.sharepointsolutions.com/WorkflowWhitePaperDownload.html"&gt;Developing No-Code Workflows&lt;/a&gt;. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;7. Extending Your SharePoint Designer Workflows with Additional Activities is Very Affordable&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Although Microsoft has given information workers and end users a lot of power and functionality right out of the box, you will eventually want your workflows to do some heavier duty things such as set permissions on list items, loop through items in a list, FTP items to remote servers, send emails with attachments, or read RSS feeds.&lt;/p&gt;    &lt;p&gt;We listen closely when our students and our SharePoint consulting clients tell us they need additional functionality in their SharePoint Designer workflows. We’ve created solutions to meet many of these requests and rolled them into a suite of activities called &lt;a href="http://sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/WorkflowEssentials.aspx"&gt;Workflow Essentials&lt;/a&gt;. If you want to take your SharePoint Designer workflows to the next level, you owe it to yourself to check out this very affordable product. At only $795 per Web Front End, it’s much more affordable than many other SharePoint workflow products, but provides great power with the value.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;8. SharePoint Designer Workflow Consulting is very Affordable&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;If you need a little help, or a lot, with your SharePoint Designer workflows, we are here. Our expert consultants are available for anything from a 1-hour web consultation to help you plan your solution or help you solve a particular problem you’re having, to a multi-day on-site engagement where we can get involved at any level or depth in your automation project. Web consultations are only $250/hour and can save you many hours of looking for solutions online. Discounts are also available if you purchase multiple blocks; and longer engagements can be priced per project or per hour.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;The Bottom Line: What Are Some Real Numbers?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You’re probably wondering what all this really means for your company. Let’s take a look at the example I gave above. We’ll assume that our purchasing agent earn $15/hour ($600/week, $2,400/month, $30,000/year) and spends 15% of his time getting approvals and communicating with the requestors. He estimates that by automating this process using SharePoint Designer workflows he can cut the amount of time he spends by two-thirds. This will save him 10% of his time. On a weekly basis this will save the company $60/week, $240/month, or $3,000/year by freeing up that employee to do other things that computers can’t do.&lt;/p&gt;  &lt;p&gt;Since the SharePoint Designer program is free, If the employee attended our online Essentials of InfoPath and SharePoint Workflows class, the company only has a $1,495 investment and is saving money after only six months. Even if you add in the time the employee spent in the class (30 hours x $15 = $450) and time spent writing the workflow (10 hours x $15 = $150), the company is still saving very quickly. And not only is the company saving money, but the purchasing agent is will likely be much happier and everyone else who orders materials will be happier as well—they’ll probably all be saving time too.&lt;/p&gt;  &lt;p&gt;It’s likely that after automating one process, this employee will identify several other processes that can be automated as well. For example, he may spend quite a bit of time attaching purchase orders to emails and sending the emails. With a $795 investment in Workflow Essentials, he can now automate this part of his job. And all the activities are available to all other workers that may want to make use of them. If one $8/hour employee saves 30-minutes each week from one of these automated processes then that’s a savings of around $200/year. If 100 of those employees save a half hour each week, or only 6-minutes a day, you’re looking at a $20,000/year overall savings. The numbers just keep adding up the more you automate even seemingly minor processes.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;With the quick returns that SharePoint Designer workflows provide, I can’t think of any reason why your company wouldn’t be investing in this valuable area of technology. Can you?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-8166725151733379028?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=vIr_4GwrEiQ:Zm7ht0lX_fs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=vIr_4GwrEiQ:Zm7ht0lX_fs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=vIr_4GwrEiQ:Zm7ht0lX_fs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=vIr_4GwrEiQ:Zm7ht0lX_fs:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=vIr_4GwrEiQ:Zm7ht0lX_fs:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=vIr_4GwrEiQ:Zm7ht0lX_fs:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=vIr_4GwrEiQ:Zm7ht0lX_fs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=vIr_4GwrEiQ:Zm7ht0lX_fs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-07-02T09:52:27.863-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/07/why-now-is-best-time-to-get-started.html</feedburner:origLink></item><item><title>Check Out These SharePoint Designer Workflow Essentials Videos!</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/h4JaNZn5ef8/check-out-these-sharepoint-designer.html</link><author>noreply@blogger.com (Ricky Spears)</author><pubDate>Wed, 01 Jul 2009 08:31:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-753134380061869164</guid><description>&lt;p&gt;I recently recorded a bunch of videos that demonstrate how each of the activities in our &lt;a href="http://sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/WorkflowEssentials.aspx"&gt;Workflow Essentials&lt;/a&gt; product work. If you aren’t already familiar with Workflow Essentials, it adds more than two dozen activities and conditions to your SharePoint Designer workflows so you can can do so much more with them.&lt;/p&gt;  &lt;p&gt;Most of these videos are only 2-3 minutes long. But these activities are so easy to use that even in just a couple minutes you’ll get to see how to add them to your workflow project, how to configure them, and then get to see how they work in a real running workflow. &lt;/p&gt;  &lt;p&gt;You can&amp;#160; &lt;a href="http://sharepointsolutions.com/Pages/software-videos.aspx?Tags=workflow%20essentials"&gt;watch all 13 Workflow Essentials videos&lt;/a&gt; together. Although there are 24 activities, many of the videos include multiple activities so you get to see how they work together.&lt;/p&gt;  &lt;p&gt;You’ll can also access any of the videos for a particular workflow action by visiting the &lt;a href="http://sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/WorkflowEssentials.aspx"&gt;Workflow Essentials product page&lt;/a&gt;; then find the activity you’re interested in and click on the &lt;strong&gt;&lt;em&gt;Watch Video&lt;/em&gt;&lt;/strong&gt; link.&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="225" alt="image" src="http://lh3.ggpht.com/_CBP_pnMCL9E/SkuBSYnCybI/AAAAAAAAAIQ/ZLdWUQGOidc/image%5B6%5D.png?imgmax=800" width="599" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;One of the most common things that information workers and end users would like to do in their SharePoint Designer workflows is manage permissions on items in SharePoint lists and libraries. Workflow Essentials makes this really easy with three activities: Grant Permission on Item, Delete Item Permission Assignment, and Reset Item Permission Inheritance. Below, you can watch the video that shows how to add and configure these three activities and then you’ll get to see them in action.&lt;/p&gt; &lt;object width="640" height="498"&gt; &lt;param name="movie" value="http://content.screencast.com/users/SharePoint-Solutions/folders/Software%20Videos/media/cee8325b-7e20-4c94-978f-85a93406eec4/grant-delete-reset-permissions-mp4_controller.swf"&gt;&lt;/param&gt; &lt;param name="quality" value="high"&gt;&lt;/param&gt; &lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;/param&gt; &lt;param name="flashVars" value="containerwidth=640&amp;amp;containerheight=498&amp;amp;showstartscreen=true&amp;amp;showendscreen=true&amp;amp;loop=false&amp;amp;autostart=false&amp;amp;color=000000,000000&amp;amp;thumbscale=45&amp;amp;content=http://content.screencast.com/users/SharePoint-Solutions/folders/Software%20Videos/media/cee8325b-7e20-4c94-978f-85a93406eec4/grant-delete-reset-permissions-mp4.mp4"&gt;&lt;/param&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt; &lt;param name="scale" value="showall"&gt;&lt;/param&gt; &lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt; &lt;param name="base" value="http://content.screencast.com/users/SharePoint-Solutions/folders/Software%20Videos/media/cee8325b-7e20-4c94-978f-85a93406eec4/"&gt;&lt;/param&gt;  &lt;embed src="http://content.screencast.com/users/SharePoint-Solutions/folders/Software%20Videos/media/cee8325b-7e20-4c94-978f-85a93406eec4/grant-delete-reset-permissions-mp4_controller.swf" quality="high" bgcolor="#FFFFFF" width="640" height="498" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="containerwidth=640&amp;containerheight=498&amp;showstartscreen=true&amp;showendscreen=true&amp;loop=false&amp;autostart=false&amp;color=000000,000000&amp;thumbscale=45&amp;content=http://content.screencast.com/users/SharePoint-Solutions/folders/Software%20Videos/media/cee8325b-7e20-4c94-978f-85a93406eec4/grant-delete-reset-permissions-mp4.mp4" allowFullScreen="true" base="http://content.screencast.com/users/SharePoint-Solutions/folders/Software%20Videos/media/cee8325b-7e20-4c94-978f-85a93406eec4/" scale="showall"&gt;&lt;/embed&gt; &lt;/object&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-753134380061869164?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=h4JaNZn5ef8:xmKZ1SV3XAs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=h4JaNZn5ef8:xmKZ1SV3XAs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=h4JaNZn5ef8:xmKZ1SV3XAs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=h4JaNZn5ef8:xmKZ1SV3XAs:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=h4JaNZn5ef8:xmKZ1SV3XAs:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=h4JaNZn5ef8:xmKZ1SV3XAs:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=h4JaNZn5ef8:xmKZ1SV3XAs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=h4JaNZn5ef8:xmKZ1SV3XAs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-07-01T08:31:21.657-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/07/check-out-these-sharepoint-designer.html</feedburner:origLink></item><item><title>What Students Are Saying About SharePoint Solutions’ Online Classes</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/YvwdHqxrRrs/what-students-are-saying-about.html</link><author>noreply@blogger.com (Ricky Spears)</author><pubDate>Tue, 30 Jun 2009 13:02:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-7521870377211845496</guid><description>&lt;p&gt;Last week I taught our first live online class: &lt;a href="http://sharepointsolutions.com/SharePoint-Training/Courses/Pages/Essential-SharePoint-Workflow.aspx?CourseTitle=Essentials%20of%20InfoPath%20and%20SharePoint%20Workflows%20(Online%20Live)"&gt;Essentials of InfoPath and SharePoint Workflows&lt;/a&gt;. We had a fantastic group of students and I really enjoyed working with them. &lt;/p&gt;  &lt;p&gt;We’re offering this same class online again the week of &lt;a href="http://sharepointsolutions.com/SharePoint-Training/Pages/web-class-details.aspx?ClassID=150&amp;amp;city=Your%20Desk&amp;amp;location=Online%20Live%20Training&amp;amp;CourseTitle=Essentials%20of%20InfoPath%20and%20SharePoint%20Workflows%20(Online%20Live)&amp;amp;RegOnline=745655&amp;amp;FormURL="&gt;July 27th&lt;/a&gt; and &lt;a href="http://sharepointsolutions.com/SharePoint-Training/Pages/web-class-details.aspx?ClassID=151&amp;amp;city=Your%20Desk&amp;amp;location=Online%20Live%20Training&amp;amp;CourseTitle=Essentials%20of%20InfoPath%20and%20SharePoint%20Workflows%20(Online%20Live)&amp;amp;RegOnline=745657&amp;amp;FormURL="&gt;August 24th&lt;/a&gt;. Our online classes are taught by an expert SharePoint instructor with lots of knowledge and experience from the field. You’ll be able to interact with other students and do labs on your own just as if you were sitting in one of our classrooms. &lt;strong&gt;These classes will fill up quickly, so &lt;/strong&gt;&lt;a href="http://sharepointsolutions.com/SharePoint-Training/Pages/Training-Schedule.aspx"&gt;&lt;strong&gt;register for an online SharePoint class&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; today!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;So, what did some of the students in this class have to say about it? Read their comments for yourself:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“This is definitely one of the best classes I've taken. It was actually my second class online and the format/presentation/labs/etc all worked really well. I'm leaving this class with tons of ideas to implement and can't wait to dig in and get started. The labs were great and the documentation was flawless. I will definitely keep SharePoint Solutions in mind for future classes.”&lt;/p&gt;    &lt;p&gt;“[The instructors] added extra value to the class with their input and the extra demos.”&lt;/p&gt;    &lt;p&gt;“I've attended in person SharePoint Solutions courses and the format online worked just as well for me.”&lt;/p&gt;    &lt;p&gt;“A plus for the online courses is being able to watch the instructor help other students work through problems.”&lt;/p&gt;    &lt;p&gt;“Well Done! Very informative in regular terms not techie terms.”&lt;/p&gt;    &lt;p&gt;“The online format was great for me.”&lt;/p&gt;    &lt;p&gt;“Great job.&amp;#160; You kept the class flowing great.”&lt;/p&gt;    &lt;p&gt;“It was an excellent class.”&lt;/p&gt;    &lt;p&gt;“[The instructor] presented complex material very well. He made sure everyone was following along and answered questions thoroughly.”&lt;/p&gt;    &lt;p&gt;“Great Class.”&lt;/p&gt;    &lt;p&gt;“[The instructor] was very patient and helpful even beyond the scope of the class.”&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-7521870377211845496?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=YvwdHqxrRrs:Mosp3dYRMqk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=YvwdHqxrRrs:Mosp3dYRMqk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=YvwdHqxrRrs:Mosp3dYRMqk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=YvwdHqxrRrs:Mosp3dYRMqk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=YvwdHqxrRrs:Mosp3dYRMqk:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=YvwdHqxrRrs:Mosp3dYRMqk:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=YvwdHqxrRrs:Mosp3dYRMqk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=YvwdHqxrRrs:Mosp3dYRMqk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-06-30T13:02:12.556-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/06/what-students-are-saying-about.html</feedburner:origLink></item><item><title>SharePoint Data Zoom: Content Rotator Web Part</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/X6q0O9y36Jc/sharepoint-data-zoom-content-rotator.html</link><category>wss</category><category>sharepoint</category><category>data zoom</category><author>noreply@blogger.com (Tony Bierman [MVP WSS])</author><pubDate>Wed, 17 Jun 2009 07:51:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-7311045980565966573</guid><description>&lt;span id="__publishingReusableFragment" fragmentid="/ReusableContent/38_.000" contenteditable="false"&gt;The &lt;span class="fn"&gt;SharePoint Data Zoom Web Part&lt;/span&gt; is a free tool which allows #SharePoint users to easily build dynamic, data-driven content on any page.  This new &lt;a href="https://www.siafoo.net/snippet/304"&gt;Fading Content Rotator script&lt;/a&gt; allows you to rotate through content from a SharePoint list.  The content from each list item will be displayed in turn, with fading in and out for a nice visual effect.  Here's a &lt;a href="http://sharepointsolutions.com/SharePoint-Add-ons/Pages/Data-Zoom-Demo-Content-Rotator.aspx"&gt;live demo&lt;/a&gt; of the script.&lt;br /&gt;&lt;br /&gt;Download the SharePoint Data Zoom Web Part &lt;a href="http://sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/SharePoint-Data-Zoom-Web-Part.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-7311045980565966573?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=X6q0O9y36Jc:IiFkSEKA3jM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=X6q0O9y36Jc:IiFkSEKA3jM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=X6q0O9y36Jc:IiFkSEKA3jM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=X6q0O9y36Jc:IiFkSEKA3jM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=X6q0O9y36Jc:IiFkSEKA3jM:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=X6q0O9y36Jc:IiFkSEKA3jM:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=X6q0O9y36Jc:IiFkSEKA3jM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=X6q0O9y36Jc:IiFkSEKA3jM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-06-17T08:03:11.763-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/06/sharepoint-data-zoom-content-rotator.html</feedburner:origLink></item><item><title>How to get column names to wrap in #SharePoint new item forms (NewForm.aspx)</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/fPOto3fv4e0/how-to-get-column-names-to-wrap-in.html</link><author>noreply@blogger.com (Kevin Pine)</author><pubDate>Tue, 02 Jun 2009 16:18:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-1240593648122904392</guid><description>&lt;p&gt;I was asked the other day if there might be a slick CSS method for getting long column names to wrap in a SharePoint list’s new item form (NewForm.aspx). The long column names were causing a horizontal scroll at times and just plain didn’t look right.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_a2lHXLhOkYM/SiW5LftCbCI/AAAAAAAAAB8/6J1AAj4U7Vw/s1600-h/NewItemFormBefore5.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="New-Item-Form-Before" border="0" alt="New-Item-Form-Before" src="http://lh6.ggpht.com/_a2lHXLhOkYM/SiW5L1dNpnI/AAAAAAAAACE/mgRlp_36AnI/NewItemFormBefore_thumb3.gif?imgmax=800" width="533" height="303" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The first thing I did was to examine the code that NewForm.aspx was presenting to the browser. I found the culprit was a &amp;lt;nobr&amp;gt; tag wrapped around the column name.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_a2lHXLhOkYM/SiW5MCk_oMI/AAAAAAAAACI/kIkyF5D9uNE/s1600-h/newform.aspxsource7.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="newform.aspx-source" border="0" alt="newform.aspx-source" src="http://lh6.ggpht.com/_a2lHXLhOkYM/SiW5McTXq-I/AAAAAAAAACM/HtrTxVYXNOk/newform.aspxsource_thumb5.gif?imgmax=800" width="507" height="135" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;nobr&amp;gt; stands for ‘no break’ and overrides the normal HTML line-wrapping. A little research yielded&amp;#160; the following CSS override. Basically redefining the nobr tag to allow the column name to wrap.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;nobr {white-space: normal}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Armed with that info, you have a few options. You could add this to your custom style sheet or master page. This would override all instances of the nobr tag so you will have to be sure that is really what you want to do. &lt;/p&gt;  &lt;p&gt;Another option would be to deploy the CSS on just the NewForm.aspx page for your list using SharePoint Designer. If you want to be able to make future tweaks (or remove the CSS all together) from the browser, add a web part zone to the form page and deploy the CSS in a content editor web part. This is the method I will describe here.&lt;/p&gt;  &lt;p&gt;The high-level overview: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Add a web part zone to your new item page &lt;/li&gt;    &lt;li&gt;Add a content editor web part (CEWP) to the zone &lt;/li&gt;    &lt;li&gt;Add the following code to the Source Editor of the CEWP      &lt;br /&gt;      &lt;br /&gt;&amp;lt;style type= &amp;quot;text/css&amp;quot;&amp;gt;       &lt;br /&gt;nobr {white-space: normal}       &lt;br /&gt;&amp;lt;/style&amp;gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The details:&lt;/p&gt;  &lt;p&gt;Browse to your list and click ‘New’ (Item) &lt;/p&gt;  &lt;p&gt;On the File menu, select ‘Edit with Microsoft Office SharePoint Designer’ &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_a2lHXLhOkYM/SiW5MtqN1UI/AAAAAAAAACQ/otqrKdg-wgI/s1600-h/EditinSharePointDesigner4.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Edit-in-SharePoint-Designer" border="0" alt="Edit-in-SharePoint-Designer" src="http://lh4.ggpht.com/_a2lHXLhOkYM/SiW5NE9KKYI/AAAAAAAAACU/Lst_f9FjdBY/EditinSharePointDesigner_thumb2.gif?imgmax=800" width="459" height="252" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This will launch SharePoint Designer (SPD). In SPD, add a web part zone to the page. (‘New Web Part Zone’ is on the Web Part task pane)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_a2lHXLhOkYM/SiW5NYroY9I/AAAAAAAAACY/btUezpc9kwU/s1600-h/newitemformwebpartzone3.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="new-item-form-web-part-zone" border="0" alt="new-item-form-web-part-zone" src="http://lh5.ggpht.com/_a2lHXLhOkYM/SiW5N6z0MFI/AAAAAAAAACc/zGQYVEyU6AI/newitemformwebpartzone_thumb1.gif?imgmax=800" width="467" height="401" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Click the ‘Click to insert a Web Part’ hyperlink and add the Content Editor Web Part&lt;/p&gt;  &lt;p&gt;Save the page (which will customize it from the site def)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_a2lHXLhOkYM/SiW5ONcCgsI/AAAAAAAAACg/zoi_Oc2w3R8/s1600-h/customizepage3.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="customize-page" border="0" alt="customize-page" src="http://lh6.ggpht.com/_a2lHXLhOkYM/SiW5OeEbz8I/AAAAAAAAACk/GIQVcg1ojsQ/customizepage_thumb1.gif?imgmax=800" width="494" height="229" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Back in your browser, refresh the new item page&lt;/p&gt;  &lt;p&gt;Click ‘Site Actions’, ‘Edit Page’&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_a2lHXLhOkYM/SiW5PHlziWI/AAAAAAAAACw/cCama04RLmk/s1600-h/editnewform.aspx3.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="edit-newform.aspx" border="0" alt="edit-newform.aspx" src="http://lh6.ggpht.com/_a2lHXLhOkYM/SiW5PllKTQI/AAAAAAAAAC0/IGe9Tvf1-O0/editnewform.aspx_thumb1.gif?imgmax=800" width="503" height="266" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;On the CEWP, click the ‘edit’ drop down and select ‘Modify Shared Web Part’&lt;/p&gt;  &lt;p&gt;Click the ‘Source Editor’ button and type in the following:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;      &lt;br /&gt;nobr {white-space: normal}       &lt;br /&gt;&amp;lt;/style&amp;gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh4.ggpht.com/_a2lHXLhOkYM/SiW5P9uzobI/AAAAAAAAAC4/F-SGlpJGkMY/s1600-h/cewpsourcecss3.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="cewp-source-css" border="0" alt="cewp-source-css" src="http://lh5.ggpht.com/_a2lHXLhOkYM/SiW5QS5yk5I/AAAAAAAAAC8/Ba9h2BKl_GY/cewpsourcecss_thumb1.gif?imgmax=800" width="506" height="276" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click ‘Save’, and ‘OK’ and you should see the long column names wrap immediately &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_a2lHXLhOkYM/SiW5QlLmZII/AAAAAAAAADA/R3KMeu_lNaI/s1600-h/sharepointcolumnnameswrap4.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="sharepoint-column-names-wrap" border="0" alt="sharepoint-column-names-wrap" src="http://lh5.ggpht.com/_a2lHXLhOkYM/SiW5Q4cMxgI/AAAAAAAAADM/pXZ3sWMnGsM/sharepointcolumnnameswrap_thumb2.gif?imgmax=800" width="515" height="249" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The default width for the Title column is 190px. If you want it a bit wider you could modify the CEWP source code to specify a width, like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_a2lHXLhOkYM/SiW5RLhleSI/AAAAAAAAADQ/TcXmDf5kjLw/s1600-h/cewpsourcecsswidth2253.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="cewp-source-css-width225" border="0" alt="cewp-source-css-width225" src="http://lh6.ggpht.com/_a2lHXLhOkYM/SiW5Rl4SfJI/AAAAAAAAADU/TXIu3awLmug/cewpsourcecsswidth225_thumb1.gif?imgmax=800" width="519" height="349" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Which will make that first column 225px instead.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_a2lHXLhOkYM/SiW5R0v7rbI/AAAAAAAAADY/YaE6ePZGzSs/s1600-h/cewpsetcolumnwidthcss4.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="cewp-set-column-width-css" border="0" alt="cewp-set-column-width-css" src="http://lh3.ggpht.com/_a2lHXLhOkYM/SiW5SDwd8pI/AAAAAAAAADc/_X0CpJ5cIds/cewpsetcolumnwidthcss_thumb2.gif?imgmax=800" width="521" height="318" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;When you have it looking right, edit the page again and edit the CEWP web part again. &lt;/p&gt;  &lt;p&gt;Expand the ‘Appearance’ section and give it a meaningful title, like “CEWP-CSS Constrain width on new item form” and set the Chrome Type to ‘None’&lt;/p&gt;  &lt;p&gt;You can export the web part to use elsewhere in your site if needed. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-1240593648122904392?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=fPOto3fv4e0:v019B9hCSL0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=fPOto3fv4e0:v019B9hCSL0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=fPOto3fv4e0:v019B9hCSL0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=fPOto3fv4e0:v019B9hCSL0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=fPOto3fv4e0:v019B9hCSL0:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=fPOto3fv4e0:v019B9hCSL0:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=fPOto3fv4e0:v019B9hCSL0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=fPOto3fv4e0:v019B9hCSL0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-06-02T16:44:09.208-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/06/how-to-get-column-names-to-wrap-in.html</feedburner:origLink></item><item><title>The My Links Web Part – It’s Not Just for My Sites #sharepoint</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/q2xEpmBYuuY/my-links-web-part-its-not-just-for-my.html</link><category>sharepoint</category><category>sharepoint 2007</category><author>noreply@blogger.com (Ricky Spears)</author><pubDate>Fri, 29 May 2009 07:46:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-5949348116376742450</guid><description>&lt;p&gt;I’ve talked to a number of folks in recent months that have wanted to add the links stored in a user’s My Links list in their My Site to other SharePoint pages that weren’t in the My Site site collection. Up until yesterday, I had always thought this would require some custom programming. &lt;/p&gt;  &lt;p&gt;If you aren’t familiar with My Links, it’s a great place to store those things you might normally store in your Internet Explorer Favorites or Firefox Bookmarks. The advantage to using My Links is that they are always available to you anywhere you are logged into SharePoint. So, if you log in on a different computer, your links are there. And the links can go anywhere; they don’t have to be links to SharePoint locations. Here is a screenshot of how My Links is usually accessed in SharePoint.    &lt;br /&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="181" alt="image" src="http://lh3.ggpht.com/_CBP_pnMCL9E/Sh_1Gy_gPVI/AAAAAAAAAG8/RClEGQ9i2wM/image5.png?imgmax=800" width="567" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Yesterday, just for fun, I decided to try an experiment; &lt;strong&gt;and my experiment worked!&lt;/strong&gt; I added a My LInks web part to my My Site. Then I exported it and saved it to my desktop.     &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_CBP_pnMCL9E/Sh_1HOc0FnI/AAAAAAAAAHA/I-C3E8naQ28/s1600-h/image9.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="175" alt="image" src="http://lh6.ggpht.com/_CBP_pnMCL9E/Sh_1HWA196I/AAAAAAAAAHE/nwFxNujQ2WM/image_thumb2.png?imgmax=800" width="393" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Next I went to the home page of my portal, made the page editable, and clicked on &lt;strong&gt;&lt;em&gt;Add a Web Part&lt;/em&gt;&lt;/strong&gt; for one of the web part zones. I closed the Add Web Parts dialog by clicking on the link at the bottom for the &lt;strong&gt;&lt;em&gt;Advanced Web Part gallery and options&lt;/em&gt;&lt;/strong&gt;. This opened the Add Web Parts Tool Pane in the right-hand side of my browser. At the top I clicked on the down arrow beside Browse and selected &lt;strong&gt;&lt;em&gt;Import&lt;/em&gt;&lt;/strong&gt;.     &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_CBP_pnMCL9E/Sh_1INMwtlI/AAAAAAAAAHI/V1yJLaLsveE/s1600-h/image%5B4%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="297" alt="image" src="http://lh3.ggpht.com/_CBP_pnMCL9E/Sh_1IaLqWYI/AAAAAAAAAHM/1sVUPXUUpbo/image_thumb%5B1%5D.png?imgmax=800" width="276" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I browsed to and selected the &lt;strong&gt;&lt;em&gt;My_Links.dwp&lt;/em&gt;&lt;/strong&gt; web part I had saved to my desktop and clicked the &lt;strong&gt;&lt;em&gt;Upload&lt;/em&gt;&lt;/strong&gt; button.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_CBP_pnMCL9E/Sh_1IwoQOfI/AAAAAAAAAHQ/gCKILMQDf7o/s1600-h/1%5B4%5D.png"&gt;&lt;img title="1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="203" alt="1" src="http://lh4.ggpht.com/_CBP_pnMCL9E/Sh_1JBT4OKI/AAAAAAAAAHU/dWpWBll2ow0/1_thumb%5B1%5D.png?imgmax=800" width="272" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To finish, I just drug the My Links web part where I wanted it on the page and published the page. All my links were then showing up on the page and as I logged in as different test users, their links showed up as well, as expected.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_CBP_pnMCL9E/Sh_1Jepmx_I/AAAAAAAAAHY/d7FG9toFEVc/s1600-h/image%5B8%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="243" alt="image" src="http://lh3.ggpht.com/_CBP_pnMCL9E/Sh_1JzgMD_I/AAAAAAAAAHc/FiS1hIKd2uQ/image_thumb%5B3%5D.png?imgmax=800" width="406" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-5949348116376742450?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=q2xEpmBYuuY:eWsneZJIfV0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=q2xEpmBYuuY:eWsneZJIfV0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=q2xEpmBYuuY:eWsneZJIfV0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=q2xEpmBYuuY:eWsneZJIfV0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=q2xEpmBYuuY:eWsneZJIfV0:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=q2xEpmBYuuY:eWsneZJIfV0:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=q2xEpmBYuuY:eWsneZJIfV0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=q2xEpmBYuuY:eWsneZJIfV0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-29T07:46:00.876-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/05/my-links-web-part-its-not-just-for-my.html</feedburner:origLink></item><item><title>SharePoint Workflow and InfoPath Training… Online!   #sharepoint</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/Tm6-2jlZyzU/sharepoint-workflow-and-infopath.html</link><author>noreply@blogger.com (Kevin Pine)</author><pubDate>Wed, 06 May 2009 14:41:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-4146058228431498090</guid><description>&lt;p&gt;&lt;span style="font-family:arial;"&gt;For a couple of reasons, &lt;a href="http://bit.ly/17GBFI"&gt;Mission: Automation – SharePoint Workflow and InfoPath &lt;/a&gt;is one of my favorite classes to teach.&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;The student feedback is incredible. Everything in this class is something they can put to work right away. You can see the light bulbs come on as students learn things they will utilize as soon as they get back to their office.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;The courseware is just terrific. The author of Mission Automation, Ricky Spears, has set the bar high in terms of quality content and hands-on labs. You may see only one module that specifically mentions SharePoint Designer Workflows, but don’t be fooled. In each successive module you will put more and more complex SPD workflows under your belt. Fun stuff.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family:arial;"&gt;&lt;p&gt;Now Ricky has done it again. With the release of &lt;a href="http://bit.ly/qw9lu"&gt;Essentials of InfoPath and SharePoint Workflows&lt;/a&gt;, you can learn a ton of useful InfoPath and SharePoint workflow information. Information you will be able to put to work right away. And the best thing about it, you can take this class online, right from your desk. The class is taught over five days with three hours of lecture and live demos in the morning and two to three hours of lab assistance in the afternoon.&lt;br /&gt;&lt;br /&gt;I don’t know where you plan to be on May 18th but I will be online, learning even more about InfoPath and SharePoint Workflow as Ricky Spears teaches &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Training/Courses/Pages/Essential-SharePoint-Workflow.aspx?CourseTitle=Essentials%20of%20InfoPath%20and%20SharePoint%20Workflows%20(Online%20Live)"&gt;this class&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-4146058228431498090?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=Tm6-2jlZyzU:mJImWo32Wws:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=Tm6-2jlZyzU:mJImWo32Wws:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=Tm6-2jlZyzU:mJImWo32Wws:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=Tm6-2jlZyzU:mJImWo32Wws:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=Tm6-2jlZyzU:mJImWo32Wws:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=Tm6-2jlZyzU:mJImWo32Wws:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=Tm6-2jlZyzU:mJImWo32Wws:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=Tm6-2jlZyzU:mJImWo32Wws:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-18T17:18:18.634-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/05/sharepoint-workflow-and-infopath.html</feedburner:origLink></item><item><title>Using XSLT to Create a Forms Server Link on a Task Form</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/GR5SJcrcGQA/using-xslt-to-create-forms-server-link_29.html</link><author>noreply@blogger.com (Russell Wright)</author><pubDate>Wed, 29 Apr 2009 19:26:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-5930398514363121834</guid><description>&lt;span xmlns=""&gt;&lt;p&gt;When you use the "Assign a To-do Item" action in a SharePoint Designer workflow, a form is created that is presented to the user when they edit the task that the action created. This form allows the user to "complete the task" that was assigned during the workflow.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Located on this task form is a link to the related list item. When this related list item is an InfoPath form, a link is provided to the xml form, but unfortunately this link doesn't respect the "open in browser" directive that is selected on the form library advanced settings when the library is configured to forms server. Here's how you can make a change to the XSLT on the form to change the link to open the form using forms server.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://sharepointsolutions.rickyspears.com/043009_0225_UsingXSLTto1.png" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;First, open the aspx form that was created in the SPD workflow. You're going to edit some of the form code. Go ahead the click the Split tab at the bottom to view the code and the form design.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://sharepointsolutions.rickyspears.com/043009_0225_UsingXSLTto2.png" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Once the form is open, click on the chevron to open the Common Data View Tasks pane. If you can't get to the chevron, you can right-click on PlaceHolderMain and select Show Common Control Tasks. Check the box "Show with sample data." This will display the table as shown.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://sharepointsolutions.rickyspears.com/043009_0225_UsingXSLTto3.png" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;While in the split mode, click to place your cursor in the cell to the right of the cell containing the label "Related list item." It's the one that looks empty. Notice in the code window where your cursor is located. Find the &amp;lt;a&amp;gt; tag and all its related code. It should be similar to that shown.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:12;"&gt;&amp;lt;a href="{substring-before(@WorkflowLink, ', ')}"&amp;gt;&amp;lt;xsl:value-of select="substring-after(@WorkflowLink, ', ')"&amp;gt;&amp;lt;/xsl:value-of&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Now, change the code between the quotes in the href= as follows. Of course, you need to use your relative URL to the formserver.aspx page.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:12;"&gt;{concat('&lt;strong&gt;http://portal.awbikes.local/st/_layouts/formserver.aspx?XmlLocation=&lt;/strong&gt;',substring-before(@WorkflowLink,', '),'&lt;strong&gt;&amp;amp;amp;OpenIn=Browser&lt;/strong&gt;')}&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You are using the concat function to create a link to the form server as described in MSDN at &lt;a href="http://msdn.microsoft.com/en-us/library/ms772417.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms772417.aspx&lt;/a&gt;. In this instance, the link will look like this:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;http://portal.awbikes.local/st/_layouts/formserver.aspx?XmlLocation=&lt;em&gt;URL-TO-XML-FORM&lt;/em&gt;&amp;amp;OpenIn=Browser&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Now, when you click on the link you should see the form opens with forms services.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://sharepointsolutions.rickyspears.com/043009_0225_UsingXSLTto4.png" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://sharepointsolutions.rickyspears.com/043009_0225_UsingXSLTto5.png" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Subsequent recompiles of the workflow will not affect your form modifications. If you make a mistake and need to start over, simply delete the aspx task form and recompile your workflow.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-5930398514363121834?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=GR5SJcrcGQA:fRFS7xssdb0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=GR5SJcrcGQA:fRFS7xssdb0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=GR5SJcrcGQA:fRFS7xssdb0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=GR5SJcrcGQA:fRFS7xssdb0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=GR5SJcrcGQA:fRFS7xssdb0:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=GR5SJcrcGQA:fRFS7xssdb0:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=GR5SJcrcGQA:fRFS7xssdb0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=GR5SJcrcGQA:fRFS7xssdb0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-28T14:11:43.069-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/04/using-xslt-to-create-forms-server-link_29.html</feedburner:origLink></item><item><title>Silverlight: The easiest method to get SharePoint list data</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/FgpE7FjKjro/silverlight-easiest-method-to-get.html</link><category>wss</category><category>sharepoint</category><category>silverlight</category><category>moss</category><author>noreply@blogger.com (Tony Bierman [MVP WSS])</author><pubDate>Mon, 27 Apr 2009 10:16:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-5215035286786617080</guid><description>&lt;p&gt;In this post, I will share the simplest, most direct method I’ve found to access SharePoint list data from a Silverlight control hosted within a SharePoint web part.  Contrary to most examples I’ve seen, this methodology will not require any custom web services.  I’m am however going to assume that you have a working knowledge of how to build a simple SharePoint Web Part and a simple Silverlight control.&lt;/p&gt;&lt;p&gt;In learning new programming techniques, I’d rather read code examples than listen to some one bloviate, so for your reference this article uses four code listings which can be found in &lt;a href="http://www.siafoo.net/library/32" target="_blank"&gt;this online repository&lt;/a&gt;.  These listings are:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Listing 1 – &lt;a href="http://www.siafoo.net/snippet/287"&gt;Silverlight Hosting Web Part&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Listing 2 - &lt;a href="http://www.siafoo.net/snippet/288"&gt;Web Part Hosted Silverlight Control – App&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Listing 3 - &lt;a href="http://www.siafoo.net/snippet/289"&gt;Web Part Hosted Silverlight Control – Page&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Listing 4 - &lt;a href="http://www.siafoo.net/snippet/290"&gt;Web Part Hosted Silverlight Control – Page XAML&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;Step 1: Getting the list data&lt;/span&gt;&lt;/p&gt;&lt;p&gt;In this step, we’ll use our old friend owssvr.dll to fetch an XML representation of our list data.  For any given list in SharePoint, its XML data can get accessed using this URL:&lt;/p&gt;&lt;p&gt;&lt;a href="http://%5bserver%5d/_vti_bin/owssvr.dll?Cmd=Display&amp;amp;List=%5BGuid%5D&amp;amp;XMLDATA=TRUE"&gt;http://[server]/_vti_bin/owssvr.dll?Cmd=Display&amp;amp;List=[Guid]&amp;amp;XMLDATA=TRUE&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In the above URL, Guid is the Id for your SharePoint list.  To find out the Guid for your list, visit the list’s settings page and snag the Guid from the Url.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;Step 2: Create the web part host&lt;/span&gt;&lt;/p&gt;&lt;p&gt;In &lt;a href="http://www.siafoo.net/snippet/287" target="_blank"&gt;Listing 1&lt;/a&gt;, we create a web part to host our Silverlight control.  This web part will “lazy load” the Silverlight control’s compiled .xap file at runtime.  I recommend uploading the .xap file to a SharePoint document library.  This web part has 2 properties; the relative path to our .xap file and the Guid of our SharePoint list.  Note that this technique still allows for complete step debugging.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;Step 3: Silverlight Application file&lt;/span&gt;&lt;/p&gt;&lt;p&gt;In &lt;a href="http://www.siafoo.net/snippet/288" target="_blank"&gt;Listing 2&lt;/a&gt;, the Silverlight application file handles receiving parameters from our web part and passing the list Guid on to the Silverlight control itself.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;Step 4: Silverlight Page code behind&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The code in &lt;a href="http://www.siafoo.net/snippet/289" target="_blank"&gt;Listing 3&lt;/a&gt; does most of the heavy lifting.  This is where we fetch and parse the list data’s XML.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;Step 5: Silverlight Page Xaml&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.siafoo.net/snippet/290" target="_blank"&gt;Listing 4&lt;/a&gt; is a simple Silverlight Xaml page with a  DataGrid added.&lt;/p&gt;&lt;p&gt;And there you have it.  I believe this technique to be the simplest, most direct method of fetching SharePoint list data for use in Silverlight.  Questions or comments?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-5215035286786617080?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=FgpE7FjKjro:GSYSEoh9c-M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=FgpE7FjKjro:GSYSEoh9c-M:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=FgpE7FjKjro:GSYSEoh9c-M:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=FgpE7FjKjro:GSYSEoh9c-M:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=FgpE7FjKjro:GSYSEoh9c-M:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=FgpE7FjKjro:GSYSEoh9c-M:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=FgpE7FjKjro:GSYSEoh9c-M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=FgpE7FjKjro:GSYSEoh9c-M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-29T08:13:33.759-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/04/silverlight-easiest-method-to-get.html</feedburner:origLink></item><item><title>SharePoint Data Zoom: Handling Complex List Field Types</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/ZLutBEXusX8/sharepoint-data-zoom-handling-complex.html</link><category>wss</category><category>sharepoint</category><category>software</category><category>moss</category><category>data zoom</category><author>noreply@blogger.com (Tony Bierman [MVP WSS])</author><pubDate>Thu, 16 Apr 2009 07:11:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-6392457517745775214</guid><description>&lt;p&gt;The free &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/SharePoint-Data-Zoom-Web-Part.aspx"&gt;SharePoint Data Zoom Web Part&lt;/a&gt; gives you the power and flexibility of creating SharePoint apps from .NET code, but with a much quicker result and without the hassles of coding, compiling and deploying your solution.&lt;/p&gt;&lt;p&gt;As a case and point, let’s take a look at the &lt;strong&gt;$SPFields&lt;/strong&gt; context item. We’ve added &lt;strong&gt;$SPFields&lt;/strong&gt; to provide better support for “hard to access” SharePoint list fields like Look-up, User, URL, Multi-Column, Multi-Choice and Rating Scale fields. To illustrate, let’s look at an example:&lt;/p&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="lineno"&gt; 1&lt;/span&gt;## Get the list&lt;br /&gt;&lt;span class="lineno"&gt; 2&lt;/span&gt;#set( $myLinksList = $web.lists.get_item("DOT Links") )&lt;br /&gt;&lt;span class="lineno"&gt; 3&lt;/span&gt;&lt;br /&gt;&lt;span class="lineno"&gt; 4&lt;/span&gt;#foreach($myLink in $myLinksList.Items)&lt;br /&gt;&lt;span class="lineno"&gt; 5&lt;/span&gt;&lt;br /&gt;&lt;span class="lineno"&gt; 6&lt;/span&gt; ## Get hard to read SharePoint fields&lt;br /&gt;&lt;span class="lineno"&gt; 7&lt;/span&gt; #set( $urlValue = $SPFields.GetUrlValue($myLink.get_item("URL")) )&lt;br /&gt;&lt;span class="lineno"&gt; 8&lt;/span&gt; #set( $stateValue = $SPFields.GetLookupValue($myLink.get_item("State")) )&lt;br /&gt;&lt;span class="lineno"&gt; 9&lt;/span&gt; #set( $ownerValue = $SPFields.GetUserValue($web, $myLink.get_item("Owner")) )&lt;br /&gt;&lt;span class="lineno"&gt;10&lt;/span&gt;&lt;br /&gt;&lt;span class="lineno"&gt;11&lt;/span&gt; #beforeall&lt;br /&gt;&lt;span class="lineno"&gt;12&lt;/span&gt;   &amp;lt;table class="ms-listviewtable" cellpadding="3" cellspacing="0" border="0" width="100%"&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;13&lt;/span&gt;     &amp;lt;tr class="ms-viewheadertr"&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;14&lt;/span&gt;       &amp;lt;th class="ms-vh2-nofilter"&amp;gt;Title&amp;lt;/th&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;15&lt;/span&gt;       &amp;lt;th class="ms-vh2-nofilter"&amp;gt;State&amp;lt;/th&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;16&lt;/span&gt;       &amp;lt;th class="ms-vh2-nofilter"&amp;gt;Owner&amp;lt;/th&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;17&lt;/span&gt;     &amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;18&lt;/span&gt; #odd&lt;br /&gt;&lt;span class="lineno"&gt;19&lt;/span&gt;     &amp;lt;tr class=""&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;20&lt;/span&gt; #even&lt;br /&gt;&lt;span class="lineno"&gt;21&lt;/span&gt;     &amp;lt;tr class="ms-alternating"&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;22&lt;/span&gt; #each&lt;br /&gt;&lt;span class="lineno"&gt;23&lt;/span&gt;       &amp;lt;td class="ms-vb2"&amp;gt;&amp;lt;a href="$urlValue.URL"&amp;gt;$urlValue.Description&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;24&lt;/span&gt;       &amp;lt;td class="ms-vb2"&amp;gt;$stateValue.LookupValue&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;25&lt;/span&gt;       &amp;lt;td class="ms-vb2"&amp;gt;$ownerValue.LookupValue&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;26&lt;/span&gt; #after&lt;br /&gt;&lt;span class="lineno"&gt;27&lt;/span&gt;     &amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;28&lt;/span&gt; #afterall&lt;br /&gt;&lt;span class="lineno"&gt;29&lt;/span&gt;   &amp;lt;/table&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;30&lt;/span&gt; #nodata&lt;br /&gt;&lt;span class="lineno"&gt;31&lt;/span&gt;   No links found&lt;br /&gt;&lt;span class="lineno"&gt;32&lt;/span&gt;#end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;In line 2 two of the example above, we load a variable &lt;strong&gt;$myLinksList&lt;/strong&gt; with the “Dot Links” list. In line 4, we begin a for..each loop to iterate over each item in the list. On line 7 though 9, you’ll notice that we’re using the &lt;strong&gt;$SPFields&lt;/strong&gt; context object to set the variables for three complex fields. &lt;strong&gt;$SPFields.GetUrlValue&lt;/strong&gt; will handle parsing the URL type fields, while &lt;strong&gt;$SPfields.GetLookupValue&lt;/strong&gt; can hand fetching the value of a lookup field from another list! Finally, &lt;strong&gt;$SPFields.GetUserValue&lt;/strong&gt; handles parsing a User type field for you.&lt;/p&gt;&lt;p&gt;If you drop your attention down to lines 23 through 25, you’ll see where the convenience of the &lt;strong&gt;$SPFields&lt;/strong&gt; context item really shines. For the URL field, we simply need to call &lt;strong&gt;$urlValue.URL&lt;/strong&gt; and &lt;strong&gt;$urlValue.Description&lt;/strong&gt; to get at our data. With the lookup and user field types, calling &lt;strong&gt;$stateValue.LookupValue&lt;/strong&gt; and &lt;strong&gt;$ownerValue.LookupValue&lt;/strong&gt; does the trick.&lt;/p&gt;&lt;p&gt;Here’s a screen shot of the simple output:&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; MARGIN-RIGHT: auto" src="http://www.siafoo.net/image/156" /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Convenient and flexible yet powerful! Don’t you agree?&lt;/p&gt;&lt;p&gt;Documentation for the &lt;strong&gt;$SPFields&lt;/strong&gt; context item &lt;a href="http://help.sharepointsolutions.com/products/DataZoom/webframe.html?Classes_SPFields.html"&gt;is here&lt;/a&gt;. The sample script above can be downloaded from the community site &lt;a href="http://www.siafoo.net/snippet/284"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;To download the SharePoint Data Zoom Web Part, &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/SharePoint-Data-Zoom-Web-Part.aspx"&gt;go here&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-6392457517745775214?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=ZLutBEXusX8:9J1OdbjHz6o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=ZLutBEXusX8:9J1OdbjHz6o:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=ZLutBEXusX8:9J1OdbjHz6o:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=ZLutBEXusX8:9J1OdbjHz6o:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=ZLutBEXusX8:9J1OdbjHz6o:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=ZLutBEXusX8:9J1OdbjHz6o:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=ZLutBEXusX8:9J1OdbjHz6o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=ZLutBEXusX8:9J1OdbjHz6o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-29T19:43:15.923-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/04/sharepoint-data-zoom-handling-complex.html</feedburner:origLink></item><item><title>Released: SharePoint Data Zoom Web Part 1.0.9104.2</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/SqMscTpxk_s/released-sharepoint-data-zoom-web-part.html</link><category>wss</category><category>sharepoint</category><category>sharepoint software</category><category>moss</category><category>data zoom</category><author>noreply@blogger.com (Tony Bierman [MVP WSS])</author><pubDate>Wed, 15 Apr 2009 03:40:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-7174000456581326397</guid><description>We've released an updated version of the &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/SharePoint-Data-Zoom-Web-Part.aspx"&gt;SharePoint Data Zoom Web Part&lt;/a&gt; with some improvements.&lt;br /&gt;&lt;br /&gt;In this release:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The $SPFields context item was added to provide better support for hard to access fields like Look-up, User, URL, Multi-Column, Multi-Choice and Rating Scale fields.&lt;/li&gt;&lt;li&gt;Additional methods added to the $SPUtility context item to provide a simple, robust way to retrieve the root web, a web by ID and a web by name/path. These methods ensure the SPWeb objects are disposed properly when the context exists.&lt;/li&gt;&lt;li&gt;Two Split methods added to the $Expressions context item which allow you to split a string using a regular expression.&lt;/li&gt;&lt;/ul&gt;Complete change log is &lt;a href="http://software.sharepointsolutions.com/Community/t/243.aspx"&gt;here&lt;/a&gt;.  Download the bits &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/SharePoint-Data-Zoom-Web-Part.aspx"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-7174000456581326397?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=SqMscTpxk_s:Pcecxs7M2EY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=SqMscTpxk_s:Pcecxs7M2EY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=SqMscTpxk_s:Pcecxs7M2EY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=SqMscTpxk_s:Pcecxs7M2EY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=SqMscTpxk_s:Pcecxs7M2EY:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=SqMscTpxk_s:Pcecxs7M2EY:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=SqMscTpxk_s:Pcecxs7M2EY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=SqMscTpxk_s:Pcecxs7M2EY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-15T03:44:41.375-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/04/released-sharepoint-data-zoom-web-part.html</feedburner:origLink></item><item><title>SharePoint Data Zoom Web Part : Two Live Demos Online</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/0CgKsVDkwkQ/sharepoint-data-zoom-web-part-two-live.html</link><category>wss</category><category>sharepoint</category><category>salesforce.com</category><category>software</category><category>moss</category><category>data zoom</category><author>noreply@blogger.com (Tony Bierman [MVP WSS])</author><pubDate>Mon, 13 Apr 2009 12:16:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-6018632487812705794</guid><description>&lt;a href="http://sharepointsolutions.blogspot.com/2009/04/sharepoint-data-zoom-web-part-released.html"&gt;Last week we released&lt;/a&gt; the &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/SharePoint-Data-Zoom-Web-Part.aspx"&gt;SharePoint Data Zoom Web Part&lt;/a&gt; as a free community tool which allows SharePoint users to easily build dynamic, data-driven content on any page.&lt;br /&gt;&lt;br /&gt;Today we've published two live demonstrations of the Data Zoom in action!  These two example applications use the &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/SharePoint-Data-Zoom-Web-Part.aspx#tab4"&gt;Data Zoom Extensions for salesforce.com Sales&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Live demo: &lt;a title="" href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Pages/Data-Zoom-Demo-Sales-Funnel.aspx"&gt;Sales Funnel&lt;/a&gt;&lt;span id="__publishingReusableFragment" fragmentid="/ReusableContent/38_.000" contenteditable="false"&gt; &lt;p&gt;Live demo: &lt;a title="" href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Pages/Data-Zoom-Demo-Won-Lost.aspx"&gt;Won/Lost/Closed&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-6018632487812705794?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=0CgKsVDkwkQ:Ndeth-T3Lnk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=0CgKsVDkwkQ:Ndeth-T3Lnk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=0CgKsVDkwkQ:Ndeth-T3Lnk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=0CgKsVDkwkQ:Ndeth-T3Lnk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=0CgKsVDkwkQ:Ndeth-T3Lnk:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=0CgKsVDkwkQ:Ndeth-T3Lnk:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=0CgKsVDkwkQ:Ndeth-T3Lnk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=0CgKsVDkwkQ:Ndeth-T3Lnk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-13T12:22:47.646-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/04/sharepoint-data-zoom-web-part-two-live.html</feedburner:origLink></item><item><title>How to Emulate User Roles in InfoPath Forms Services to Automatically Switch Views</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/6SDLZ7GuSmU/how-to-emulate-user-roles-in-infopath.html</link><author>noreply@blogger.com (Ricky Spears)</author><pubDate>Thu, 09 Apr 2009 10:30:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-5061569488219838960</guid><description>&lt;span xmlns=''&gt;&lt;p&gt;Many of my SharePoint consulting clients and students express the need to have different users see different views of an InfoPath form. In the InfoPath client, this is easy to handle using the &lt;em&gt;&lt;strong&gt;User Roles&lt;/strong&gt;&lt;br /&gt;    &lt;/em&gt;functionality which has been well-documented elsewhere. Unfortunately, User Roles are not supported by InfoPath Forms Services for your browser-enabled forms. Here is a work-around that I have been using for quite some time that has worked well for me and my clients and students.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In this post we'll create a simple InfoPath form with two views: one view for most users and another view for administrators only. When the form loads, it will check to see if the current logged in user is an Administrator for that form and if he is it will display the &lt;strong&gt;&lt;em&gt;Admin View&lt;/em&gt;&lt;/strong&gt; to the user. If the user is not an administrator for the form, it will display the &lt;strong&gt;&lt;em&gt;User View&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Create a Custom List to Store Users and Permission Levels&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Although SharePoint exposes a number of web services that reveal security information and information about SharePoint Groups, I've never been able to get them to work reliably with InfoPath, especially without writing code. Since I can't use SharePoint Groups, I create a custom list to store the names of my users who will be administrators. &lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Create a custom list called &lt;strong&gt;&lt;em&gt;My Form Admins&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Change the name of the &lt;strong&gt;&lt;em&gt;Title&lt;/em&gt;&lt;/strong&gt; column to &lt;strong&gt;&lt;em&gt;Permission Level&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create a new column named User, of type &lt;strong&gt;&lt;em&gt;Person or Group&lt;/em&gt;&lt;/strong&gt;. Set the Showfield to &lt;strong&gt;&lt;em&gt;User Name&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add a couple users.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Your list should look similar to this:&lt;br/&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat1.png'/&gt;&lt;br /&gt;    &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;Create a New InfoPath Form with Two Views&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Obviously, you'll need an InfoPath form to use this, so launch InfoPath and create a new blank form.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Within this form, create two views. Rename the default view to &lt;strong&gt;&lt;em&gt;User View&lt;/em&gt;&lt;/strong&gt;, name the other one &lt;strong&gt;&lt;em&gt;Admin View&lt;/em&gt;&lt;/strong&gt;. You don't have to add any fields on these views, but you can if you want. You will want to make them distinct so you know which view you are looking at, but it could be as simple as just putting the text "User View" and "Admin View" on the top of each view; that's what I did for this post.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Add Some Nodes to Store the Decisioning Information&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;In my form, I created a new group named &lt;strong&gt;&lt;em&gt;AdminCheckingNodes&lt;/em&gt;&lt;/strong&gt;, with two nodes both of type &lt;strong&gt;&lt;em&gt;Text&lt;/em&gt;&lt;/strong&gt; named &lt;strong&gt;&lt;em&gt;Current UserUserName&lt;/em&gt;&lt;/strong&gt;, and &lt;strong&gt;&lt;em&gt;CurrentUserPermissionLevel&lt;/em&gt;&lt;/strong&gt;. These will be used to store the User name of the current logged in user and his permission level, if one is set, in the &lt;strong&gt;&lt;em&gt;My Form Admins&lt;/em&gt;&lt;/strong&gt; list in SharePoint.&lt;br/&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat2.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Add a Data Connection to the SharePoint List Containing the Admin Names&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The form needs to be able to look at the &lt;strong&gt;&lt;em&gt;My Form Admins&lt;/em&gt;&lt;/strong&gt; list in SharePoint to determine the Permission Level of the current user. Create a data connection to this list.&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Click on &lt;strong&gt;&lt;em&gt;Tools, Data Connections&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click &lt;strong&gt;&lt;em&gt;Add&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create a new connection to &lt;strong&gt;&lt;em&gt;Receive Data &lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;     &lt;strong&gt;&lt;em&gt;from a SharePoint Library or List&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Paste in the path to the &lt;strong&gt;&lt;em&gt;My Form Admins&lt;/em&gt;&lt;/strong&gt; list.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Select the &lt;strong&gt;&lt;em&gt;My Form Admins&lt;/em&gt;&lt;/strong&gt; list.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Select both the &lt;strong&gt;&lt;em&gt;Permission Level&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;User&lt;/em&gt;&lt;/strong&gt; fields.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Accept all the other defaults in the wizard and close the Data Connection window.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;Write Rules to Get the Current User's Permission Level&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You need to write four rules to fire when the form first loads. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;The first rule will store the name of the current user in the &lt;strong&gt;&lt;em&gt;CurrentUserUserName&lt;/em&gt;&lt;br /&gt;    &lt;/strong&gt;node.&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Click on &lt;strong&gt;&lt;em&gt;Tools, Form Options&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Select the &lt;strong&gt;&lt;em&gt;Open and Save&lt;/em&gt;&lt;/strong&gt; category.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the &lt;strong&gt;&lt;em&gt;Open Behavior&lt;/em&gt;&lt;/strong&gt; section , click on the &lt;strong&gt;&lt;em&gt;Rules&lt;/em&gt;&lt;/strong&gt; button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click the &lt;strong&gt;&lt;em&gt;Add&lt;/em&gt;&lt;/strong&gt; button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For the Rule Name, enter "&lt;strong&gt;&lt;em&gt;Store Name of Current User".&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;Click the &lt;strong&gt;&lt;em&gt;Add Action&lt;/em&gt;&lt;/strong&gt; button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Select the&lt;strong&gt;&lt;br /&gt;      &lt;em&gt;Set a field's value&lt;/em&gt;&lt;/strong&gt; action.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For the &lt;strong&gt;&lt;em&gt;Field&lt;/em&gt;&lt;/strong&gt;, select the &lt;strong&gt;&lt;em&gt;CurrentUserUserName&lt;/em&gt;&lt;/strong&gt; node.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For the &lt;strong&gt;&lt;em&gt;Value&lt;/em&gt;&lt;/strong&gt;, click the Data Binding button. Click the &lt;strong&gt;&lt;em&gt;Insert Function&lt;/em&gt;&lt;/strong&gt; button, select &lt;strong&gt;&lt;em&gt;userName. &lt;/em&gt;&lt;/strong&gt;Click &lt;strong&gt;&lt;em&gt;OK&lt;/em&gt;&lt;/strong&gt;, and &lt;strong&gt;&lt;em&gt;OK&lt;/em&gt;&lt;/strong&gt;. Your form should look like this:&lt;br/&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat3.png'/&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;Click OK. The completed rule will look like this:&lt;br/&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat4.png'/&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;Click &lt;strong&gt;&lt;em&gt;OK&lt;/em&gt;&lt;/strong&gt; to close the Rules dialog.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Whew! That may have seemed like a lot, but it's only part of what we need to do. You still need to write three more rules. Your &lt;strong&gt;&lt;em&gt;Rules for OpeningForms&lt;/em&gt;&lt;/strong&gt; dialog should look like this.&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 18pt'&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat5.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;ol style='margin-left: 54pt'&gt;&lt;li&gt;Click the &lt;strong&gt;&lt;em&gt;Add&lt;/em&gt;&lt;/strong&gt; button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For the Rule Name enter, &lt;strong&gt;"Clear out the current permission level"&lt;/strong&gt;. You need to do this just to make sure this field is empty in case the current user isn't listed in you're &lt;strong&gt;My Form Admins&lt;/strong&gt; list.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click the &lt;strong&gt;&lt;em&gt;Add Action&lt;/em&gt;&lt;/strong&gt; button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Select the&lt;strong&gt;&lt;br /&gt;      &lt;em&gt;Set a field's value&lt;/em&gt;&lt;/strong&gt; action.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For the &lt;strong&gt;&lt;em&gt;Field&lt;/em&gt;&lt;/strong&gt;, select the &lt;strong&gt;&lt;em&gt;CurrentUserPermisisonLevel&lt;/em&gt;&lt;/strong&gt; node.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For the &lt;strong&gt;&lt;em&gt;Value&lt;/em&gt;&lt;/strong&gt;, just leave the field blank&lt;strong&gt;&lt;em&gt;. &lt;/em&gt;&lt;/strong&gt;Click &lt;strong&gt;&lt;em&gt;OK&lt;/em&gt;&lt;/strong&gt;, and &lt;strong&gt;&lt;em&gt;OK&lt;/em&gt;&lt;/strong&gt;. Your form should look like this:&lt;br/&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat6.png'/&gt;&lt;br/&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;Click &lt;strong&gt;&lt;em&gt;OK&lt;/em&gt;&lt;/strong&gt;. The completed rule will look like this:&lt;br/&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat7.png'/&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;Click &lt;strong&gt;&lt;em&gt;OK&lt;/em&gt;&lt;/strong&gt; to close the Rules dialog.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;You should have two rules now. You're half done!&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat8.png'/&gt;&lt;br /&gt;     &lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;The next rule will look at the SharePoint list and store the permission level of the user, if the user's name is in the list.&lt;br /&gt;&lt;/p&gt;&lt;ol style='margin-left: 54pt'&gt;&lt;li&gt; Click the &lt;strong&gt;&lt;em&gt;Add&lt;/em&gt;&lt;/strong&gt; button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For the Rule Name enter, &lt;strong&gt;"Look up and store the current user's permission level"&lt;/strong&gt;. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click the &lt;strong&gt;&lt;em&gt;Add Action&lt;/em&gt;&lt;/strong&gt; button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Select the&lt;strong&gt;&lt;br /&gt;      &lt;em&gt;Set a field's value&lt;/em&gt;&lt;/strong&gt; action.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For the &lt;strong&gt;&lt;em&gt;Field&lt;/em&gt;&lt;/strong&gt;, select the &lt;strong&gt;&lt;em&gt;CurrentUserPermisisonLevel&lt;/em&gt;&lt;/strong&gt; node.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For the &lt;strong&gt;&lt;em&gt;Value&lt;/em&gt;&lt;/strong&gt;, click on the data binding button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the &lt;strong&gt;&lt;em&gt;Insert Formula&lt;/em&gt;&lt;/strong&gt; dialog, click on the &lt;strong&gt;&lt;em&gt;Insert Field or Group&lt;/em&gt;&lt;/strong&gt; button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Change the Data Source to &lt;strong&gt;&lt;em&gt;My Form Admins (Secondary)&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Expand out all the nodes and select &lt;strong&gt;&lt;em&gt;Permission Level&lt;/em&gt;&lt;/strong&gt;.&lt;br/&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat9.png'/&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;Click on the &lt;strong&gt;&lt;em&gt;Filter Data…&lt;/em&gt;&lt;/strong&gt; button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click the &lt;strong&gt;&lt;em&gt;Add&lt;/em&gt;&lt;/strong&gt; button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the first drop-down, select &lt;strong&gt;&lt;em&gt;Select a field or group…&lt;/em&gt;&lt;/strong&gt;.Then select &lt;strong&gt;&lt;em&gt;User&lt;/em&gt;&lt;/strong&gt;, then click &lt;strong&gt;&lt;em&gt;OK.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;Leave the second drop-down with &lt;strong&gt;&lt;em&gt;is equal to&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the third drop-down, select &lt;strong&gt;&lt;em&gt;Select a field or group…&lt;/em&gt;&lt;/strong&gt;.Then change the Data Source to Main, select the &lt;strong&gt;&lt;em&gt;CurrentUserUserName&lt;/em&gt;&lt;/strong&gt; node&lt;strong&gt;&lt;em&gt;. &lt;/em&gt;&lt;/strong&gt;Your condition should look lieke this:&lt;br/&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat10.png'/&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;Click &lt;strong&gt;&lt;em&gt;OK&lt;/em&gt;&lt;/strong&gt; on the next four dialogs. Your form should look like this:&lt;br/&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat11.png'/&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;Click &lt;strong&gt;&lt;em&gt;OK&lt;/em&gt;&lt;/strong&gt; three more times. Your rules should look like this:&lt;br/&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat12.png'/&gt;&lt;br /&gt;    &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;You're almost done!. Just one more rule to write, then you can publish and test your form. The last rule will look at the value stored by the previous rule and will switch views if it contains the word "Admin."&lt;br /&gt;&lt;/p&gt;&lt;ol style='margin-left: 54pt'&gt;&lt;li&gt;Click the &lt;strong&gt;&lt;em&gt;Add&lt;/em&gt;&lt;/strong&gt; button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For the Rule Name enter, &lt;strong&gt;&lt;em&gt;"Switch to admin view if user is an admin".&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;This rule will have a condition to check the permission level you stored with the previous rule. Click the &lt;strong&gt;&lt;em&gt;Set Condition&lt;/em&gt;&lt;/strong&gt; button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the first drop-down, select &lt;strong&gt;&lt;em&gt;Select a field or group…&lt;/em&gt;&lt;/strong&gt;.Then select &lt;strong&gt;&lt;em&gt;CurrentUserPermissionLevel&lt;/em&gt;&lt;/strong&gt;, then click &lt;strong&gt;&lt;em&gt;OK.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;Leave the second drop-down with &lt;strong&gt;&lt;em&gt;is equal to&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the third drop-down, select &lt;strong&gt;&lt;em&gt;Type Text…&lt;/em&gt;&lt;/strong&gt;.Type the word "Admin" without the quotes; InfoPath will automatically add quotes for you&lt;strong&gt;&lt;em&gt;. &lt;/em&gt;&lt;/strong&gt;Your condition should look like this:&lt;br/&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat13.png'/&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;Click &lt;strong&gt;&lt;em&gt;OK&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click the &lt;strong&gt;&lt;em&gt;Add Action&lt;/em&gt;&lt;/strong&gt; button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Select the&lt;strong&gt;&lt;br /&gt;      &lt;em&gt;Switch Views&lt;/em&gt;&lt;/strong&gt; action.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For the view, select the &lt;strong&gt;&lt;em&gt;Admin View&lt;/em&gt;&lt;/strong&gt;, and click &lt;strong&gt;&lt;em&gt;OK&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Your completed rule will look like this: &lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat14.png'/&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;Click &lt;strong&gt;&lt;em&gt;OK&lt;/em&gt;&lt;/strong&gt;. All four rules should look like this: &lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat15.png'/&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;Click &lt;strong&gt;&lt;em&gt;OK&lt;/em&gt;&lt;/strong&gt; twice to return to your form.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;Publish and Test the Form&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Now you're ready to test the form! Woohoo! The easiest way to do this is to switch to the &lt;strong&gt;&lt;em&gt;User View&lt;/em&gt;&lt;/strong&gt;, then click the &lt;strong&gt;&lt;em&gt;Preview&lt;/em&gt;&lt;/strong&gt; button. If you are not listed as an Admin in the &lt;strong&gt;&lt;em&gt;My Form Admins&lt;/em&gt;&lt;/strong&gt; table, you shouls see the &lt;strong&gt;&lt;em&gt;User View&lt;/em&gt;&lt;/strong&gt;. &lt;br/&gt;&lt;br /&gt;    &lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat16.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Close the form, add yourself as an Admin in the SharePoint list and then preview the form again. You should see the &lt;strong&gt;&lt;em&gt;Admin view&lt;/em&gt;&lt;/strong&gt;. &lt;br/&gt;&lt;br /&gt;    &lt;img alt='' src='http://sharepointsolutions.rickyspears.com/040909_1727_HowtoEmulat17.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Conclusion&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You can do a lot more with this besides just switch views. For example, depending on the permission level you set for the current user, the form may call different web services to populate certain fields of information. You could choose to show or hide different sections using Conditional Formatting. When users with certain permission levels submit the form, you may have a SharePoint Designer workflow check to see if it was submitted by an Administrator, and if it was, do something different than if it was submitted by a regular user. The uses of this are limitless. Let me know in the comments how you plan to make use of this.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-5061569488219838960?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=6SDLZ7GuSmU:zpZRa1pCg1A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=6SDLZ7GuSmU:zpZRa1pCg1A:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=6SDLZ7GuSmU:zpZRa1pCg1A:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=6SDLZ7GuSmU:zpZRa1pCg1A:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=6SDLZ7GuSmU:zpZRa1pCg1A:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=6SDLZ7GuSmU:zpZRa1pCg1A:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=6SDLZ7GuSmU:zpZRa1pCg1A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=6SDLZ7GuSmU:zpZRa1pCg1A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-28T14:16:10.763-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/04/how-to-emulate-user-roles-in-infopath.html</feedburner:origLink></item><item><title>SharePoint Data Zoom: What the heck is NVelocity and why should you care?</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/_ZeuUGesq5U/sharepoint-data-zoom-what-heck-is.html</link><category>wss</category><category>sharepoint</category><category>sharepoint software</category><category>moss</category><category>data zoom</category><author>noreply@blogger.com (Tony Bierman [MVP WSS])</author><pubDate>Thu, 09 Apr 2009 08:04:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-6906142412199304704</guid><description>&lt;p&gt;A few weeks back &lt;a href="http://sharepointsolutions.blogspot.com/2009/03/sharepoint-data-zoom-web-part-brings.html"&gt;I announced&lt;/a&gt; that we'll be releasing a free web part called the &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/SharePoint-Data-Zoom-Web-Part.aspx"&gt;SharePoint Data Zoom Web Part&lt;/a&gt;. I'm happy to say that the web part was &lt;a href="http://sharepointsolutions.blogspot.com/2009/04/sharepoint-data-zoom-web-part-released.html"&gt;made publicly available yesterday&lt;/a&gt;. In my original post, I made mention of the &lt;a href="http://www.castleproject.org/others/nvelocity/index.html"&gt;NVelocity&lt;/a&gt; template engine, explaining that NVelocity provided the basis for creating scripts in Data Zoom. In this post, I'd like to give a little more background on NVelocity and begin to show you how the SharePoint Data Zoom Web Part is going to help you get your job done.&lt;/p&gt;&lt;p&gt;You may be asking yourself , "why would I want to use NVelocity for creating SharePoint web applications?". Well, NVelocity is a port to the .NET framework of the &lt;a href="http://velocity.apache.org/"&gt;Java Apache Software Foundation Velocity&lt;/a&gt; project . If you are migrating an existing Java-based application to .NET, and the existing application was written with the Velocity template engine, then using NVelocity could make the migration process much smoother. &lt;/p&gt;&lt;p&gt;Not coming from Java? No problem. Like me, you may just prefer the template syntax of NVelocity over the syntax used in a normal ASP.NET Web Forms page. The Velocity Template Language was designed specifically for building HTML pages. Velocity provides you with a very clean syntax for performing common operations such as iterating over a set of database records and displaying each record in an HTML page. One could say that Velocity and NVelocity are &lt;a href="http://en.wikipedia.org/wiki/Domain-specific_programming_language"&gt;Domain Specific Languages&lt;/a&gt; for HTML. &lt;/p&gt;&lt;p&gt;A while back, the folks at the &lt;a href="http://www.castleproject.org/others/nvelocity/index.html"&gt;Castle Project took NVelocity&lt;/a&gt; and branched it for the purpose of fixing bugs and making a &lt;a href="http://www.castleproject.org/others/nvelocity/improvements.html"&gt;few improvements&lt;/a&gt;. The Castle Project maintains the &lt;a href="http://www.castleproject.org/MonoRail/"&gt;MonoRail&lt;/a&gt; code base, a popular &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;Model-View-Control framework (MVC)&lt;/a&gt;. As you may have already guessed, the "view" in MonoRail's MVC is provided by none other than NVelocity.&lt;/p&gt;&lt;p&gt;OK, let's move on to helping you get your job done with Data Zoom. What does an NVelocity script look like? Is NVelocity really that easy to use? Well, I'll let you be the judge. In the context of our SharePoint Data Zoom Web Part, here's a simple NVelocity example:&lt;/p&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="lineno"&gt;1 &lt;/span&gt;&amp;lt;div style="padding:10px"&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;2&lt;/span&gt;&lt;br /&gt;&lt;span class="lineno"&gt;3 &lt;/span&gt;#if( $user )&lt;br /&gt;&lt;span class="lineno"&gt;4 &lt;/span&gt;  Hello $user.Name, welcome back to the '$web.Title' site.&lt;br /&gt;&lt;span class="lineno"&gt;5 &lt;/span&gt;#else&lt;br /&gt;&lt;span class="lineno"&gt;6 &lt;/span&gt;  Welcome to the '$web.Title' site.&lt;br /&gt;&lt;span class="lineno"&gt;7 &lt;/span&gt;#end&lt;br /&gt;&lt;span class="lineno"&gt;8&lt;/span&gt;&lt;br /&gt;&lt;span class="lineno"&gt;9 &lt;/span&gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;pre&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The above example looks amazingly just like HTML, no? Of course, with the exception of some dollar signs ($) and an 'if..else..end' block. The dollar signs indicate variables, which are really .NET objects in disguise. In the SharePoint Data Zoom Web Part, we provide you with some SharePoint "context" objects to make your life easier. In this case, $user is the current web user, and $web is the current SharePoint web object (see line 4 and line 6). Thus, $user.Name is the name property for the current user, and $web.Title is the title property for the current web site. Piece of cake! It gets even better though. We’ve included a source editor with the Data Zoom web part that will let you create scripts from right there in your SharePoint pages. And just so you don’t have to remember all the names, properties and complicated syntax for intimidating SharePoint objects like “$web.Title” and “$user.Name”, we’ve created a menu system in the source editor which inserts snippets for you in just one click.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here's a slightly more advanced example. In this case, we'll get the "Tasks" list from the current web site and display its Title, Created and Modified fields for each item in the list:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="lineno"&gt; 1 &lt;/span&gt;## Get the tasks list&lt;br /&gt;&lt;span class="lineno"&gt; 2 &lt;/span&gt;#set( $tasksList = $web.lists.get_item("Tasks") )&lt;br /&gt;&lt;span class="lineno"&gt; 3&lt;/span&gt;&lt;br /&gt;&lt;span class="lineno"&gt; 4 &lt;/span&gt;## Get edit url information&lt;br /&gt;&lt;span class="lineno"&gt; 5 &lt;/span&gt;#set( $sourceUrlEncoded = $HttpUtility.UrlEncode($request.RawUrl) )&lt;br /&gt;&lt;span class="lineno"&gt; 6 &lt;/span&gt;#set( $editForm = $tasksList.Forms.get_item($PAGETYPE_PAGE_EDITFORM) )&lt;br /&gt;&lt;span class="lineno"&gt; 7&lt;/span&gt;&lt;br /&gt;&lt;span class="lineno"&gt; 8 &lt;/span&gt;#foreach($item in $tasksList.Items)&lt;br /&gt;&lt;span class="lineno"&gt; 9&lt;/span&gt;  #beforeall&lt;br /&gt;&lt;span class="lineno"&gt;10&lt;/span&gt;    &amp;lt;table class="ms-listviewtable" cellpadding="3" cellspacing="0" border="0" width="100%"&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;11&lt;/span&gt;      &amp;lt;tr class="ms-viewheadertr"&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;12&lt;/span&gt;        &amp;lt;th class="ms-vh2-nofilter"&amp;gt;Title&amp;lt;/th&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;13&lt;/span&gt;        &amp;lt;th class="ms-vh2-nofilter"&amp;gt;Created&amp;lt;/th&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;14&lt;/span&gt;        &amp;lt;th class="ms-vh2-nofilter"&amp;gt;Modified&amp;lt;/th&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;15&lt;/span&gt;      &amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;16&lt;/span&gt;  #odd&lt;br /&gt;&lt;span class="lineno"&gt;17&lt;/span&gt;      &amp;lt;tr class=""&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;18&lt;/span&gt;  #even&lt;br /&gt;&lt;span class="lineno"&gt;19&lt;/span&gt;      &amp;lt;tr class="ms-alternating"&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;20&lt;/span&gt;  #each&lt;br /&gt;&lt;span class="lineno"&gt;21&lt;/span&gt;        &amp;lt;td class="ms-vb2"&amp;gt;&amp;lt;a href="$web.Url/$editForm.Url?ID=$item.ID&amp;amp;Source=$sourceUrlEncoded"&amp;gt;$item.Title&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;22&lt;/span&gt;        &amp;lt;td class="ms-vb2"&amp;gt;$item.get_item("Created").ToString("d")&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;23&lt;/span&gt;        &amp;lt;td class="ms-vb2"&amp;gt;$item.get_item("Modified").ToString("d")&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;24&lt;/span&gt;  #after&lt;br /&gt;&lt;span class="lineno"&gt;25&lt;/span&gt;      &amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;26&lt;/span&gt;  #afterall&lt;br /&gt;&lt;span class="lineno"&gt;27&lt;/span&gt;    &amp;lt;/table&amp;gt;&lt;br /&gt;&lt;span class="lineno"&gt;28&lt;/span&gt;  #nodata&lt;br /&gt;&lt;span class="lineno"&gt;29&lt;/span&gt;    No tasks found&lt;br /&gt;&lt;span class="lineno"&gt;30&lt;/span&gt;&lt;br /&gt;&lt;span class="lineno"&gt;31 &lt;/span&gt;#end&lt;/pre&gt;&lt;pre&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Lines such as 2 and 4 which begin with "##" double pounds signs are just comments. Read them or ignore them. On lines 2,5 and 6 we're calling the "#set" directive to assign values in our own user variables. Specifically, line 2 is where we get the Tasks list. On line 8, we begin a "for..each..end" loop that does the work of running through the Tasks list and printing each item's Title, Created and Modified field values. Slightly more involved than the first example, but still pretty darn simple! By the time you were able to get logged into SharePoint Designer and started doing the work, you could have already had this script done with the Data Zoom web part. ;)&lt;/p&gt;&lt;p&gt;Well, I've tried to provide you with a bit of history on NVelocity, and I've shown you a few simple examples of how our SharePoint Data Zoom Web Part can make it really easy for you to create applications in SharePoint. These examples have been extremely simple. There are more in depth examples available on the community site (link below). I'll wrap up with a few more notes and links you may find useful as next steps. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/SharePoint-Data-Zoom-Web-Part.aspx"&gt;SharePoint Data Zoom Web Part home page &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;- Get more info and download the bits.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://help.sharepointsolutions.com/products/datazoom"&gt;Help documentation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;- Online documentation.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.siafoo.net/group/115"&gt;Community site&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;- Shared scripts library.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://software.sharepointsolutions.com/Community/default.aspx?GroupID=13"&gt;Support forums&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;- Ask questions, get answers.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;Even further reading... &lt;ul&gt;&lt;li&gt;&lt;a href="http://using.castleproject.org/display/Contrib/Castle+Visual+Studio+Integration"&gt;NVelocity Syntax Highlighting in Visual Studio 2008 and Visual studio 2005&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.chadmyers.com/Blog/archive/2007/11/28/testing-scottgu-alternate-view-engines-with-asp.net-mvc-nvelocity.aspx"&gt;Ostensibly to prove Scott Guthrie wrong, Chad Myers espouses NVelocity as an alternative view engine for ASP.NET&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-6906142412199304704?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=_ZeuUGesq5U:D2BsyZcc_DA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=_ZeuUGesq5U:D2BsyZcc_DA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=_ZeuUGesq5U:D2BsyZcc_DA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=_ZeuUGesq5U:D2BsyZcc_DA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=_ZeuUGesq5U:D2BsyZcc_DA:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=_ZeuUGesq5U:D2BsyZcc_DA:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=_ZeuUGesq5U:D2BsyZcc_DA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=_ZeuUGesq5U:D2BsyZcc_DA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-09T08:35:12.204-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/04/sharepoint-data-zoom-what-heck-is.html</feedburner:origLink></item><item><title>SharePoint Data Zoom Web Part Released</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/qtYkMK8ZyBo/sharepoint-data-zoom-web-part-released.html</link><category>wss</category><category>sharepoint</category><category>sharepoint software</category><category>web parts</category><author>noreply@blogger.com (Tony Bierman [MVP WSS])</author><pubDate>Wed, 08 Apr 2009 18:46:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-4580049044314222586</guid><description>&lt;p align="left"&gt;The SharePoint Data Zoom Web Part is a free tool which allows SharePoint users to easily build dynamic, data-driven content on any page. Data from SharePoint Sites, SharePoint Lists and virtually any other source can be aggregated and formatted with ease.&lt;/p&gt; &lt;p align="left"&gt;Using the Data Zoom Web Part, your SharePoint pages can perform powerful, flexible queries on a variety of data sources using simple, familiar syntax that's easy to write and understand. You'll be able to create robust, value-added SharePoint applications in a fraction of the time, without the need for .NET or XSLT programming.&lt;/p&gt;&lt;p&gt;In our experience, several SharePoint-based applications that would have normally taken a .NET development team a few weeks or more to create by contrast took only a few days with the SharePoint Data Zoom Web Part.&lt;/p&gt;&lt;p&gt;Here are a few links to further reading:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/SharePoint-Data-Zoom-Web-Part.aspx"&gt;SharePoint Data Zoom Web Part home page&lt;br /&gt;&lt;/a&gt;&lt;p&gt;- Get more info and download the bits.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://help.sharepointsolutions.com/products/datazoom"&gt;Help documentation&lt;/a&gt;&lt;p&gt;- Online documentation.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.siafoo.net/group/115"&gt;Community site&lt;/a&gt;&lt;p&gt;- Shared scripts library.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://software.sharepointsolutions.com/Community/default.aspx?GroupID=13"&gt;Support forums&lt;/a&gt;&lt;p&gt;- Ask questions, get answers.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-4580049044314222586?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=qtYkMK8ZyBo:5uin0WC4bV8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=qtYkMK8ZyBo:5uin0WC4bV8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=qtYkMK8ZyBo:5uin0WC4bV8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=qtYkMK8ZyBo:5uin0WC4bV8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=qtYkMK8ZyBo:5uin0WC4bV8:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=qtYkMK8ZyBo:5uin0WC4bV8:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=qtYkMK8ZyBo:5uin0WC4bV8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=qtYkMK8ZyBo:5uin0WC4bV8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-08T19:01:24.825-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/04/sharepoint-data-zoom-web-part-released.html</feedburner:origLink></item><item><title>We are starting to Tweet!</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/mHjMO3_Gbyk/we-are-starting-to-tweet.html</link><category>twitter</category><author>noreply@blogger.com (Jeff Cate)</author><pubDate>Wed, 08 Apr 2009 13:39:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-1955224894062103818</guid><description>We now have an account for our company, &lt;a href="http://moss.sharepointsolutions.com/"&gt;SharePoint Solutions&lt;/a&gt;, on &lt;a href="http://twitter.com/timeline/home"&gt;Twitter&lt;/a&gt;.  You can catch up with us on Twitter at @SharePointSol&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-1955224894062103818?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=mHjMO3_Gbyk:Xn-h_Q1J0Ok:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=mHjMO3_Gbyk:Xn-h_Q1J0Ok:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=mHjMO3_Gbyk:Xn-h_Q1J0Ok:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=mHjMO3_Gbyk:Xn-h_Q1J0Ok:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=mHjMO3_Gbyk:Xn-h_Q1J0Ok:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=mHjMO3_Gbyk:Xn-h_Q1J0Ok:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=mHjMO3_Gbyk:Xn-h_Q1J0Ok:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=mHjMO3_Gbyk:Xn-h_Q1J0Ok:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-08T13:44:07.980-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/04/we-are-starting-to-tweet.html</feedburner:origLink></item><item><title>SharePoint Data Zoom Web Part brings NVelocity, MVC to SharePoint</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/CYnQAde94_0/sharepoint-data-zoom-web-part-brings.html</link><category>sharepoint</category><category>sharepoint development</category><category>mvc</category><category>sharepoint software</category><category>data zoom</category><author>noreply@blogger.com (Tony Bierman [MVP WSS])</author><pubDate>Thu, 19 Mar 2009 19:19:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-1217194165333392118</guid><description>&lt;p&gt;In the coming days, &lt;a href="http://sharepointsolutions.com/"&gt;SharePoint Solutions&lt;/a&gt; will be releasing our new SharePoint Data Zoom Web Part. With just about all the effort of falling off a truck, this new web part will allow you to pull data from nearly any data source and integrate it directly inline with your SharePoint content. This is made possible with the help of a powerful template engine called &lt;a href="http://nvelocity.sourceforge.net/"&gt;NVelocity&lt;/a&gt;, but more on that later.  (Note: NVelocity is a port of the Apache Velocity template engine to .NET.  To find out more about template engines and template languages, &lt;a href="http://en.wikipedia.org/wiki/Apache_Velocity"&gt;start with this article on Wikipedia&lt;/a&gt;.)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To determine if the Data Zoom Web Part is right for you, take a look at the following snippet and ask yourself, "would I like to create data-driven web parts literally this easily"?&lt;br /&gt;&lt;/p&gt;&lt;div class="mycode"&gt;&amp;lt;p&amp;gt;Hello $customer.Name!&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;lt;table&amp;gt;&lt;br /&gt;#foreach( $widget in $widgetsOnSpecial )&lt;br /&gt;#if ( $customer.hasPurchased($widget) )&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&lt;br /&gt;$lob.getPromo( $widget )&lt;br /&gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;#end&lt;br /&gt;#end&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;If you answered "yes", (or "yeah, dude" for you left-coasters) then you're probably ready to take a ride on the &lt;em&gt;Data Zoom express&lt;/em&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Did I mention we're giving it away for free?&lt;/p&gt;&lt;p&gt;The SharePoint Data Zoom Web Part is the brainchild SharePoint Solutions' software production manager &lt;a href="http://www.blogger.com/profile/27296797"&gt;Jeremy Luerkens&lt;/a&gt;. After using the NVelocity template engine in another platform, Jeremy felt that the SharePoint world just had to get some of that too. NVelocity is a template engine that allows you to manage your web content according to the &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;Model-View-Controller (MVC)&lt;/a&gt; model. With MVC, web page designers can focus solely on creating a well-designed site, and programmers can focus solely on writing quality, robust code to support it.&lt;/p&gt;&lt;p&gt;Out-of-the-box, the SharePoint Data Zoom Web Part will include access to site and cross-site list data within your SharePoint environment. Imagine iterating over list items as easily as in the code listing above. We've included a multitude of helper utilities for accessing, manipulating and formatting data. Everything is accessible from a convenient command menu right within the Data Zoom's source editor. We're also including the SharePoint Data Zoom Extension for Syndication free with the Data Zoom. With this extension, you'll have complete control over fetching and integrating RSS and ATOM feeds into your SharePoint pages. Consider this simple snippet to render a feed:&lt;br /&gt;&lt;/p&gt;&lt;div class="mycode"&gt;## Renders an RSS or ATOM feed&lt;br /&gt;##&lt;br /&gt;#foreach($item in $feed.items)&lt;br /&gt;#beforeall&lt;br /&gt;&amp;lt;br/&amp;gt;&amp;lt;h2 class="ms-standardheader"&amp;gt;$feed.Title.Text&amp;lt;/a&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;#each&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;h3 class="ms-linksectionheader"&amp;gt;&amp;lt;a href="$item.Links.get_Item(0).Uri.ToString()"&amp;gt;$item.Title.Text&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;&amp;lt;span class="ms-vb" &amp;gt;$item.PublishDate.ToString()&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;blockquote class="ms-vb"&amp;gt;$item.Summary.Text&amp;lt;/blockquote&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;#afterall&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;#end&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I just can't imagine how accessing and integrating data from disparate sources inside and outside SharePoint could be any easier than this, while still maintaining complete control over how and where the data is rendered. For data sources other than SharePoint lists and syndication feeds, we've created several Data Zoom Extensions. In the next few weeks, we'll be releasing extensions for access to a variety of data sources including salesforce.com, Microsoft SQL server and Active Directory. Along with our partners, we'll be creating even more extensions which will allow you to integrate data from just about any source you can find. &lt;p&gt;Stay tuned for much more on this innovative new web part from SharePoint Solutions.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=4ea5148b-d1d7-4323-a88e-9807dda5be85" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-1217194165333392118?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=CYnQAde94_0:lFbDrYFXe44:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=CYnQAde94_0:lFbDrYFXe44:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=CYnQAde94_0:lFbDrYFXe44:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=CYnQAde94_0:lFbDrYFXe44:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=CYnQAde94_0:lFbDrYFXe44:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=CYnQAde94_0:lFbDrYFXe44:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=CYnQAde94_0:lFbDrYFXe44:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=CYnQAde94_0:lFbDrYFXe44:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-03-20T19:05:09.356-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/03/sharepoint-data-zoom-web-part-brings.html</feedburner:origLink></item><item><title>Expanding the Size of Announcements Web Part</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/bghU1zPHANg/expanding-size-of-announcements-web.html</link><author>noreply@blogger.com (Russell Wright)</author><pubDate>Sat, 21 Feb 2009 06:49:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-8288365401572049982</guid><description>&lt;span xmlns=''&gt;&lt;p&gt;The announcements web part that is displayed on a team site will limit the amount of body text that is displayed.  Here's a simple way to expand the size of the displayed announcements web part on a team site while retaining a similar format.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Start with a Team Site and modify an announcement to contain a large amount of text.  This example uses an extreme amount of text!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/022109_1447_Expandingth1.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Next, open the page with SharePoint Designer.  Click on the announcements web part and you'll notice a List View Options button is displayed in the upper left corner of the web part.  Click on Change Layout.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/022109_1447_Expandingth2.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Select the Layout tab and select the layout that is 3&lt;sup&gt;rd&lt;/sup&gt; or 4&lt;sup&gt;th&lt;/sup&gt; from the bottom of displayed layouts and click OK.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/022109_1447_Expandingth3.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Click Yes to the Site Definition Page Warning dialog.  You are now "un-ghosting" the page from the site definition and a custom version of the page is being stored in the database.  Save your work in SharePoint Designer.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/022109_1447_Expandingth4.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Reload the page in your browser and look at the results.  Notice the additional fields displayed at the bottom of the announcement.  Let's get rid of them.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/022109_1447_Expandingth5.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Go back to SharePoint Designer and click on the List View Options button again but this time select Fields.  Highlight the fields you want to remove and click the Remove button and then click OK.  Save your work in SharePoint Designer and go back and reload your browser to see the results.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/022109_1447_Expandingth6.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;The extra fields are now gone.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/022109_1447_Expandingth7.png'/&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-8288365401572049982?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=bghU1zPHANg:1esqJ23JbrA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=bghU1zPHANg:1esqJ23JbrA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=bghU1zPHANg:1esqJ23JbrA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=bghU1zPHANg:1esqJ23JbrA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=bghU1zPHANg:1esqJ23JbrA:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=bghU1zPHANg:1esqJ23JbrA:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=bghU1zPHANg:1esqJ23JbrA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=bghU1zPHANg:1esqJ23JbrA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-28T14:20:07.298-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/02/expanding-size-of-announcements-web.html</feedburner:origLink></item><item><title>Give Blood to your Workflow</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/EWZ64jy3yGk/give-blood-to-your-workflow.html</link><category>InfoPath</category><category>workflow</category><author>noreply@blogger.com (Russell Wright)</author><pubDate>Sun, 01 Feb 2009 20:41:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-8547601241239550697</guid><description>&lt;span xmlns=''&gt;&lt;p&gt;Give the gift of life.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;What does this have to do with SharePoint workflows?  Last week I was teaching our Mission: Automation class where we cover InfoPath and workflows created with SharePoint Designer.  One of the things we like to do in these classes is take some ideas from our students on business problems that they are trying to solve using SharePoint workflows and attempt to outline the solution and partially implement it during class (if it doesn't become overly complicated).  This particular idea was generated by Janice and here was her problem.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Janice is the blood drive coordinator at her place of business.  She wanted to figure out a way to use SharePoint and InfoPath to allow people to register for times to give blood.  I thought this sounded like a great example of a scheduling application that many people could find other applications for, so I started down the road of creating the "Blood Drive Scheduling Application" during the class.  It uses an InfoPath form that an employee fills out to reserve a time slot for donating blood.  In this case, there are two donating stations and each one is scheduled at 15 minute intervals during the day.  In other words, for each 15 minute interval during the day, we can schedule a maximum of two people to donate at one time.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;If someone changes their mind about the time slot they've reserved, we want to give them a way to make a change.  However, we don't want to give them the ability to change the original form…they will simply request a cancellation and submit another form for a new time slot.  Some of this has to do with who has security to the different lists that we'll be using in SharePoint to solve this problem.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Now, before we get started let me say that there are a number of ways to solve this problem.  I was going for a solution that could be implemented during the class and illustrated some of the features of InfoPath and SPD workflows.  This is only one solution.  Much more elegant solutions could be implemented!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In this solution we're going to use several lists.  Blood Drive Reservations will be a forms library where we'll store the completed InfoPath forms.  Departments contains a list of the departments at the company.  Time Slots contains a list of all the available time slots during the day when a donation reservation can be made.  We'll have a Cancellations list that we can use for someone to request a cancellation of their reservation.  Finally, we'll use the built-in Tasks list to assign tasks when a cancellation is requested.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;First we'll start out by creating a custom list that has two columns.  One is the time for each of the 15 minute time slots during the day that we want to schedule and the other column is for recording how many reservations have been made for the time slot.  Here's what the table looks like in datasheet view.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto1.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;I created all the time slots for 8:00 AM thru 5:00 PM.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Next up is to create the InfoPath form and library in which the completed forms will be stored.  The form is pretty simple for our example.  Greg suggested we add the department field so there could be some competitive statistics compiled between the different departments.  Nothing like a little competition during blood letting!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto2.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;The four fields defined in our form's data source are DonorName, DonorEmail, DonorDept and TimeSlot.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto3.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;The DonorName and DonorEmail are populated using default values obtained by calling the GetUserProfileByname method in the web service, UserProfileService, referenced at http://server/_vti_bin/userprofileservice.asmx.  This web service will return name/value pairs from the user profile store that is part of SharePoint and normally configured to synchronize with Active Directory.  The PreferredName and WorkEmail are used in this example.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto4.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto5.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto6.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;The DonorDept field is populated by creating a data connection to a SharePoint list containing departments.  Nothing really complicated here.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto7.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Now, the time slot field is populated in a rather unique way.  The idea here is to filter the available time slots based on the value in Counter field in the Time Slot list.  We're going to be updating the Counter field with a workflow whenever a new reservation is submitted.  We need to create a view on the field that is filtered to only show time slots when the value of the counter is less than 2.  I created a view called AvailableTimeSlots and added the simple filter as shown.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto8.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Now we're going to use a trick to populate the DonorTimeSlot field.  We're going to create a data source to an XML file and reference the SharePoint URL protocol supported by OWSSVR.DLL.  This is documented in the WSS SDK and is referenced as follows.  http://server/path/sitename/_vti_bin/owssvr.dll?Cmd=Display&amp;amp;XMLDATA=TRUE&amp;amp;List={ListGUID}&amp;amp;View={ViewGUID}.  The exact URL for our example is http://portal.awbikes.local/sitedirectory/bd/_vti_bin/owssvr.dll?Cmd=Display&amp;amp;XMLDATA=TRUE&amp;amp;List={BAA912CA-D4D4-4786-B2B8-B33DA8691CA4}&amp;amp;View={35F16EC8-64E9-4BCE-8C8A-CD3D142AD894}.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto9.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;The GUIDs for the List and View can be found by selecting the Modify View link in the view selector and decoding the GUIDs in the URL that is displayed.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;http://portal.awbikes.local/SiteDirectory/bd/_layouts/ViewEdit.aspx?&lt;strong&gt;List=%7BBAA912CA%2DD4D4%2D4786%2DB2B8%2DB33DA8691CA4%7D&lt;/strong&gt;&amp;amp;&lt;strong&gt;View=%7B35F16EC8%2D64E9%2D4BCE%2D8C8A%2DCD3D142AD894%7D&lt;/strong&gt;&amp;amp;Source=http%253A%252F%252Fportal%252Eawbikes%252Elocal%252FSiteDirectory%252Fbd%252FLists%252FTime%2520Slots%252FAvailableTimeSlots%252Easpx &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto10.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;The List GUID and View GUID are URL encoded, and you can "un-encode" them if you want to (but you don't have to) by replacing %7B with a left curly brace { and %7D with a right curly brace }.  %2D can be replaced with hyphens.  In the example above, %7BBAA912CA%2DD4D4%2D4786%2DB2B8%2DB33DA8691CA4%7D becomes {BAA912CA-D4D4-4786-B2B8-B33DA8691CA4}.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In the next dialog on the Data Connection Wizard, choose the option to Access the data from the specified location.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto11.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Give the data connection a name and make sure you automatically retrieve data when the form is opened and click Finish.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto12.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;You can see the completed URL n the Summary section.  I like the way the URL looks when the GUIDs are un-encoded…just easier on the eyes.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;On the list box entries for the DonorTimeSlot field you need to reference this data source, OWSSVR, and select the entries as shown.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto13.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto14.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;This will populate the DonorTimeSlot list with the filtered list from the AvailableTimeSlots view.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;When we publish our form we will promote all of our fields so they appear as metadata columns in SharePoint.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto15.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Now, on to our first workflow.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The first workflow is fairly simple.  When a new form is added we want to increment the value of the counter in the Time Slots list for the time slot selected.  If two people select the same time slot, the value will be incremented to 2 and the time slot will no longer show up as an available time slot on the drop-down list in our form (because of the filter we created for our AvailableTimeSlots view).  Within this workflow, we can also send a confirmation email to the donor.  If we really want to get fancy, we can send a reminder email 24 hours before the scheduled appointment.  Here's the workflow in SPD.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;First, let calculate the new counter value by retrieving the value currently in the time slot and adding 1.  We'll save this calculated value in a variable called IncrementedTimeSlotCounter.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto16.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;To retrieve the current value of the counter we perform a lookup which reads as &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Select Counter from Time Slots where Time Slots:Title equals Blood Drive Reservations:Donor Time Slot.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;We are matching up the Title in the Time Slot list (e.g. 8:15 AM) with the time slot selected by the donor on the form from the drop-down list.  Then we simply add 1 to it and store it in a variable.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto17.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto18.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Next we update the value of the counter in the Time Slots list.  In this example, we've created another step in the workflow to do this.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto19.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto20.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Here's the screen shot of selecting the Counter field to update in the Time Slots list.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto21.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;In the "Find the List Item" section, here's the lookup.  Again, we're matching up the Time Slots:Title field with the Current Item:Donor Time Slot field (Current Item being our item we're working on in the Blood Drive Reservations list).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto22.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Now let's create a workflow that sends a confirmation email and a reminder email.  We'll send the confirmation email right away and pause until early in the morning on February 3&lt;sup&gt;rd&lt;/sup&gt; and then send a reminder email.  We can do this with a new workflow that also starts when the item is created.  It is okay to have multiple workflows running.  Here's what it looks like (nothing fancy).  We can reference the Donor Time Slot in the email by clicking the Add Lookup to Body button.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto23.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;The second step we'll use the Pause Until Date action and put in a pause with a hard date of February 3&lt;sup&gt;rd&lt;/sup&gt; and a time of 4 a.m.  Just a quick and dirty reminder email.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto24.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;We're all set on the reservation side.  Now, on to the cancellation process.  Here's the way the cancellation process will work.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;We really don't want end users to be able to delete reservation in the list and we can control that by creating a permission level that is similar to Contribute but without the permissions to edit and delete.  We can alter the security settings on the reservation list so that our Visitors have this permission level for the reservation list.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto25.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;If someone wants to cancel, they can insert an item in the Cancellations list.  They can select themselves from a drop-down list of people who have reservations and click OK to create the request.  I chose to do it this way so we can get a good match on the Donor Name.  There are other ways to handle this, but this is quick and dirty. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto26.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Once they create a cancellation request, a task is assigned to Connie via a workflow.  In this workflow I Iogged some variables to the workflow history list for debugging purposes and then assigned a task to Janice, er, I mean, Connie using the Collect Data from a User action.  Logging information to the history list is a very valuable technique for troubleshooting and validating information in the workflow.  I normally use three actions in sequence to do this:  Build Dynamic String, Set Workflow Variable and Log to History List.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto27.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Tasks are very important to understand in workflows.  They are so important they get their own categorization in the Actions selection list.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto28.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Collect Data from a User allows you to assign a task and, when that task is edited, a custom form is displayed with fields on it that you define in the workflow.  In this case we are going to ask Connie if it is okay to delete the reservation with a Yes/No drop-down.  Another workflow, Delete Reservation, was created to start on a change to the Tasks list.  It's job is to determine what the response was (Yes or No) and lookup and delete the reservation.  One of the reasons this method was chosen was because the workflow runs with the credentials of the person who started it.  Connie will have the permissions required to delete the item in the reservations list, while the donor does not.  It also allows her to verify that the person has requested to delete their reservation and not somebody else's.  Here's what the Collect Data from a User action looks like.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto29.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto30.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto31.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto32.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto33.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Next we'll take a look at the Delete Reservation workflow.  This workflow is created on the Tasks list.  It has three steps.  In the first step we set some variables that we'll use in the workflow.  These are very important because we are looking up the IDs of the Blood Drive Reservation we need to delete as well as the Time Slot we need to decrement so it is again available.  The key to these lookups begins with the fact that workflow tasks hold some very important information.  The contain a "foreign key" back to the ID of the item in the original list.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto34.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;The first thing we need is the ID of the reservation we might be deleting.  To get this we choose to lookup the ID field from the source Blood Drive Reservations.  We are going to find this by first matching the name selected in the Cancellations list with the Donor Name in the Blood Drive Reservations list.  To find the correct item in the Cancellations list, we need to reference the Workflow Item ID in the Tasks list (our current list) and match that to the ID of the item in the Cancellations list.  It is very important to understand that you have access to the Workflow Item ID in the Tasks list.  This can be very confusing if you are new to SharePoint Designer workflows, but with some patience it can be understood without having to be a programmer.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto35.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Once we have the ID of the reservation, we can find the ID of the time slot that is referenced on the reservation.  We'll use this to update the counter on the time slot.  We want to find the ID of the time slot so we match the Donor Time Slot on the Blood Drive Reservations list (e.g. 8:30 AM) with the Title on the Time Slots list.  We can find the Donor Time Slot by matching the ID of the Blood Drive Reservation with the ID that we looked up in the previous action and stored in the variable ReservationID.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto36.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;The next step is just some more logging of messages and variables to the history list for debugging purposes.  In this example I'm logging the IDs I looked up to insure that I have the right ones.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto37.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;The final step is to actually delete the reservation.  First we look up the current value of the time slot of the reservation to be deleted and subtract 1 and store the result in a variable called DecrementedTimeSlotCounter.  This is easy to do since we have already looked up the value of the ID of the time slot that we need to update in the Set variables step.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto38.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;We can then update the counter value, again using the ID of the time slot that we previously set in the variable TimeSlotID.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto39.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Finally we can delete the reservation by using the ID of the reservation that we previously stored in the variable ReservationID.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt='' src='http://sharepointsolutions.rickyspears.com/020209_0433_GiveBloodto40.png'/&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;I know this has been a long post, but hopefully it helps some folks out there become more familiar with SPD workflows.  This solution is far from perfect and there are several other ideas I would probably incorporate, but it provides a good demonstration of creating a scheduling application with workflows.  I hope you've enjoyed it and learned at least one thing (always my goal).  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;I'm on my way to bed so I can get on a plane tomorrow to do some training in San Antonio, Texas…a short flight from Dallas.  Y'all take care!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Give the gift of life…donate often!&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-8547601241239550697?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=EWZ64jy3yGk:cx52-SmADGM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=EWZ64jy3yGk:cx52-SmADGM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=EWZ64jy3yGk:cx52-SmADGM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=EWZ64jy3yGk:cx52-SmADGM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=EWZ64jy3yGk:cx52-SmADGM:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=EWZ64jy3yGk:cx52-SmADGM:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=EWZ64jy3yGk:cx52-SmADGM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=EWZ64jy3yGk:cx52-SmADGM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-28T13:54:13.741-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/02/give-blood-to-your-workflow.html</feedburner:origLink></item><item><title>Updated Workflow Essentials Product Release</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/0-aNDLrWNFM/updated-workflow-essentials-product.html</link><category>sharepoint software</category><category>workflow</category><author>noreply@blogger.com (Tony Bierman [MVP WSS])</author><pubDate>Tue, 27 Jan 2009 13:29:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-2022152758714319107</guid><description>We've just released an update to our popular &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/WorkflowEssentials.aspx"&gt;Workflow Essentials software product&lt;/a&gt;.  This release includes improvements to the Create Site by Template, Get User Property, Get User Display Name, Get User Manager, Get User Title and Get User Department activities.  A complete change log can be found &lt;a href="http://software.sharepointsolutions.com/Community/t/217.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To upgrade your existing installation of Workflow Essentials:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download the updated product release &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/Asset.aspx?AI=13"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Retract and uninstall the previous version by following &lt;a href="http://help.sharepointsolutions.com/products/workflowessentials/webframe.html?Uninstalling_Workflow_Essentials.html"&gt;these instructions&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Install and deploy the new version by following &lt;a href="http://help.sharepointsolutions.com/products/workflowessentials/webframe.html?Installing_Workflow_Essentials.html"&gt;these instructions&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Your existing workflows will not be affected by this upgrade.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-2022152758714319107?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=0-aNDLrWNFM:twqpxGBrQkE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=0-aNDLrWNFM:twqpxGBrQkE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=0-aNDLrWNFM:twqpxGBrQkE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=0-aNDLrWNFM:twqpxGBrQkE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=0-aNDLrWNFM:twqpxGBrQkE:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=0-aNDLrWNFM:twqpxGBrQkE:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=0-aNDLrWNFM:twqpxGBrQkE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=0-aNDLrWNFM:twqpxGBrQkE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-01-27T13:37:46.869-08:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/01/updated-workflow-essentials-product.html</feedburner:origLink></item><item><title>New SharePoint Workflow Resource Center</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/B5729uLXuv8/new-sharepoint-workflow-resource-center.html</link><category>workflow</category><author>noreply@blogger.com (Jeff Cate)</author><pubDate>Tue, 27 Jan 2009 09:02:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-8756207486190862481</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://moss.sharepointsolutions.com/resourcecenters/Pages/SharePointWorkflowResources.aspx"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 300px; height: 198px;" src="http://moss.sharepointsolutions.com/SiteCollectionImages/sharepoint-workflow-resources.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;We've just launched a new &lt;a href="http://moss.sharepointsolutions.com/resourcecenters/Pages/SharePointWorkflowResources.aspx"&gt;SharePoint Workflow Resource Center&lt;/a&gt; on our site.  We've been heavy into SharePoint workflows since the release of the 2007 versions of MOSS and WSS.  We have done a lot of training on the subject, a lot of blogging, consulting projects and most recently, developed an add-on, &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/WorkflowEssentials.aspx"&gt;Workflow Essentials&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So, we felt it was time to pull all of these resources together in one easy to use, easy to find place on our site.  If you are interested in leveraging SharePoint's built-in workflow engine to its fullest, I encourage you to visit the new &lt;a href="http://moss.sharepointsolutions.com/resourcecenters/Pages/SharePointWorkflowResources.aspx"&gt;Workflow Resource Center&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-8756207486190862481?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=B5729uLXuv8:pu_wjSsLvTc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=B5729uLXuv8:pu_wjSsLvTc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=B5729uLXuv8:pu_wjSsLvTc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=B5729uLXuv8:pu_wjSsLvTc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=B5729uLXuv8:pu_wjSsLvTc:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=B5729uLXuv8:pu_wjSsLvTc:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=B5729uLXuv8:pu_wjSsLvTc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=B5729uLXuv8:pu_wjSsLvTc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-01-27T09:10:36.130-08:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/01/new-sharepoint-workflow-resource-center.html</feedburner:origLink></item><item><title>Installing Adobe’s 64-bit PDF iFilter 9 on MOSS</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/fY1qTPkBDYY/installing-adobes-64-bit-pdf-ifilter-9.html</link><author>noreply@blogger.com (Russell Wright)</author><pubDate>Tue, 20 Jan 2009 15:29:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-2175660586683004840</guid><description>&lt;span xmlns=""&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;I was recently working on a new installation for a client and convinced them to put their installation on a 64-bit machine. Their installation was only a single server install, but I still set up service accounts for all the bits (more specifically, I set up SPService for the app pool account and SPSearchReader for the content crawling account). After I got SharePoint installed and running, I went after the search to make sure it worked with all the necessary file types, PDF being a very important one.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:12;color:black;"&gt;In December of 2008, Adobe released their 64-bit iFilter 9, so I thought I'd give it a try. Adobe has an &lt;a href="http://www.adobe.com/special/acrobat/configuring_pdf_ifilter_for_ms_sharepoint_2007.pdf"&gt;installation procedure&lt;/a&gt;, but for some reason I overlooked it on the first try.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;After installing the iFilter I added the PDF extension to the list of file types to be crawled. I also installed the Acrobat reader on the machine so I could open the documents after I found them. I started a full crawl and ended up with about 3000 items in the search index from my test set of data. "Good," I thought. As I started performing some searches I found that I couldn't find any PDF documents. So, I checked the crawl logs. Here's where I found the message, "&lt;em&gt;The filtering process could not process this item. This might be because you do not have the latest file filter for this type of item. Install the corresponding filter and retry your crawl."&lt;/em&gt; Well, I had just installed the iFilter, so what was up? It started smelling like a security problem&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;One of the first security issues that sounded plausible was the security settings around the DCOM components. This is where your service account needs to be able to launch the &lt;strong&gt;IIS WAMREG admin Service&lt;/strong&gt;. So, I launched dcomcnfg and edited the security to allow &lt;strong&gt;local launch&lt;/strong&gt; and &lt;strong&gt;local activation&lt;/strong&gt; for my two service accounts, SPService and SPSearchReader. I ultimately removed SPSearchReader, as it was not necessary.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://sharepointsolutions.rickyspears.com/012009_2324_InstallingA1.png" /&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;After making these changes and retrying crawls multiple times and even rebooting the server, I was still getting the same error message. What were the potential issues? I thought about and researched several potential issues that came to mind.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;User rights assignment for the SPService or SPSearchReader accounts?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;DCOM permissions for &lt;strong&gt;IIS WAMREG admin Service&lt;/strong&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;DCOM permissions for the Adobe iFilter thunking component (but this is native 64-bit, right? No more thunking.).&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;Other Adobe DCOM object that needs permission updates?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;Directory permissions for the directory where the iFilter is installed? It already had read/execute for authenticated users.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;Adding the iFilter directory to the PATH environment variable?&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;I added the directory path where the iFilter is installed to the PATH environment variable. In this case, I added C:\Program Files\Adobe\AdobePDF9iFilter64\bin. I even rebooted the server. Same result.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;I resorted to making SPService a member of the administrators group. Of course it worked after doing that. That's the answer to every security problem, right? I took the SPSearchReader out of the administrator group and it continued to index PDFs. So, I took SPService out of the administrator group and lo and behold, it continued to work!&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:12;color:black;"&gt;In one of the steps of the Adobe installation procedure (4.b.i), they mention changing the key &lt;strong&gt;\\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Setup\ContentIndexCommon\Filters\Extension\.pdf&lt;/strong&gt; to the GUID {E8978DA6-047F-4E3D-9C78-CDBE46041603}. The original value was {4C904448-74A9-11D0-AF6E-00C04FD8DC02}. This appears to be a very important step! I tested the crawl using the new value of the GUID provided and the value that was already there. My tests showed that, if you don't update the GUID, the iFilter won't be able to index the PDF content. Perhaps this was my problem all along! I'm not completely sure and the only way I can make it fail now is by changing this registry key back to its original value.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://sharepointsolutions.rickyspears.com/012009_2324_InstallingA2.png" /&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:12;"&gt;After the PDF iFilter was working, I also installed the Microsoft iFilter pack and registered it with MOSS, according to article &lt;a href="http://support.microsoft.com/kb/946336"&gt;946336&lt;/a&gt;. This is where I found there is a &lt;a href="http://social.technet.microsoft.com/Forums/en-US/sharepointsearch/thread/ba1c7d49-fd71-40c3-a3ab-d594278fd0e2/"&gt;problem with the 64-bit Visio iFilter&lt;/a&gt;. Supposedly there is/will be a hotfix, but I couldn't find one.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-2175660586683004840?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=fY1qTPkBDYY:c8q4M3s-SEM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=fY1qTPkBDYY:c8q4M3s-SEM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=fY1qTPkBDYY:c8q4M3s-SEM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=fY1qTPkBDYY:c8q4M3s-SEM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=fY1qTPkBDYY:c8q4M3s-SEM:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=fY1qTPkBDYY:c8q4M3s-SEM:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=fY1qTPkBDYY:c8q4M3s-SEM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=fY1qTPkBDYY:c8q4M3s-SEM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-28T14:21:50.031-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/01/installing-adobes-64-bit-pdf-ifilter-9.html</feedburner:origLink></item><item><title>It is about time: CTP of Visual Studio 2008 extensions for SharePoint v1.3</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/LtFnSR0ewQw/it-is-about-time-ctp-of-visual-studio.html</link><category>wss</category><category>sharepoint development</category><category>moss</category><author>noreply@blogger.com (Tony Bierman [MVP WSS])</author><pubDate>Mon, 12 Jan 2009 07:16:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-7880506435978446616</guid><description>Microsoft has released a Community Technology Preview of Visual Studio 2008 extensions for SharePoint v1.3.  VSeWSS 1.3 is an interim release for SharePoint Developers until Visual Studio 2010 comes out.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; A few new feature that you may agree "it's about time" that got included:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;64-bit support.  Yeah!&lt;/li&gt;&lt;li&gt;Deployment will now optionally remove conflicting existing features on the development server prior to redeployment. Previously any feature name conflicts would result in an error.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ancillary assemblies such as for business logic can now be added to the SharePoint Solution WSP.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For advanced users a fast deploy is included to update only the compiled assembly on the SharePoint development installation.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Several other new features are in the CTP.  Final release slated for Spring 2009.  &lt;a href="https://connect.microsoft.com/site/sitehome.aspx?SiteID=428"&gt;Download the CTP  bits here&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-7880506435978446616?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=LtFnSR0ewQw:amHXM2XMv3g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=LtFnSR0ewQw:amHXM2XMv3g:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=LtFnSR0ewQw:amHXM2XMv3g:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=LtFnSR0ewQw:amHXM2XMv3g:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=LtFnSR0ewQw:amHXM2XMv3g:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=LtFnSR0ewQw:amHXM2XMv3g:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=LtFnSR0ewQw:amHXM2XMv3g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=LtFnSR0ewQw:amHXM2XMv3g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-01-12T07:23:38.324-08:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/01/it-is-about-time-ctp-of-visual-studio.html</feedburner:origLink></item><item><title>ExCM, SPA featured in SharePoint Case Study from Microsoft</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/FDVi8Z7S-Fs/excm-spa-featured-in-sharepoint-case.html</link><category>sharepoint extranet</category><category>sharepoint</category><category>sharepoint software</category><category>sharepoint security</category><category>sharepoint governance</category><category>extranet</category><category>moss</category><author>noreply@blogger.com (Tony Bierman [MVP WSS])</author><pubDate>Mon, 12 Jan 2009 05:36:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-2663574276987565357</guid><description>Microsoft has written a new &lt;a href="http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=4000003407"&gt;SharePoint Customer Solution Case Study&lt;/a&gt; featuring our &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/ExtranetCollaborationManager.aspx"&gt;Extranet Collaboration Manager&lt;/a&gt; and &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/SiteDirector.aspx"&gt;Site Provisioning Assistant&lt;/a&gt; products.  The customer featured in this case study is global management consultancy &lt;a href="http://www.atkearney.com/"&gt;A.T. Kearney&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Case Study:&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Global Management Consultancy Boosts Client Service, Competitiveness, with Extranet.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; A.T. Kearney, based in Chicago, Illinois, is a leading management consultancy that serves clients in all major industries as well as government agencies. It has more than 2,500 employees worldwide.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We are excited and proud to provide a prestigious organization such as A.T. Kearney with our software and services in order to further their business goals and facilitate their success in the marketplace.  We're also very happy to see Microsoft author a Customer Solution Case Study which features our products and recognizes the value our add-ons provide to SharePoint customers. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=4000003407"&gt;Learn more about Extranet Collaboration Manager, Site Provisioning Assistant and SharePoint by reading the AT Kearney Customer Solution Case Study.&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you would like to download a PDF of this Customer Solution Case Study,&lt;a href="http://info.sharepointsolutions.com/CaseStudyATKearney.html"&gt; please go here&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-2663574276987565357?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=FDVi8Z7S-Fs:IR-ywhcS8_I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=FDVi8Z7S-Fs:IR-ywhcS8_I:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=FDVi8Z7S-Fs:IR-ywhcS8_I:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=FDVi8Z7S-Fs:IR-ywhcS8_I:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=FDVi8Z7S-Fs:IR-ywhcS8_I:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=FDVi8Z7S-Fs:IR-ywhcS8_I:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=FDVi8Z7S-Fs:IR-ywhcS8_I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=FDVi8Z7S-Fs:IR-ywhcS8_I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-01-12T06:09:28.620-08:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2009/01/excm-spa-featured-in-sharepoint-case.html</feedburner:origLink></item><item><title>New Release of Extranet Collaboration Manager</title><link>http://feedproxy.google.com/~r/SharepointSolutionsBlog/~3/rkyn6AvpvTA/new-release-of-extranet-collaboration.html</link><category>sharepoint extranet</category><category>wss</category><category>extranet</category><category>moss</category><author>noreply@blogger.com (Tony Bierman [MVP WSS])</author><pubDate>Mon, 15 Dec 2008 10:12:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7192910.post-844785958757196154</guid><description>Our software team is continuously working to improve and enrich the feature set of our &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/ExtranetCollaborationManager.aspx"&gt;Extranet Collaboration Manager product&lt;/a&gt;.   This latest release ExCM is no exception, containing a &lt;a href="http://software.sharepointsolutions.com/Community/t/70.aspx"&gt;long list of improvements&lt;/a&gt; which further establish ExCM as the premiere solution available today for managing your SharePoint-based extranet.  Just take a look at these new features:&lt;div&gt;&lt;p&gt;&lt;strong&gt;Feature:&lt;/strong&gt; User Defined Invitation Expiration Length&lt;/p&gt; &lt;blockquote&gt;  &lt;p&gt;The expiration length of an invitation can now be set by an   administrator. Possibly values include 3 days, 1 week, 2 weeks, 1 month, 2   months, 3 months, 6 months and 1 year.&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Feature:&lt;/strong&gt; E-mail Address as Username&lt;/p&gt; &lt;blockquote&gt;  &lt;p&gt;Administrators can configure a site to use the e-mail address as the user   name. This option is applied to the registration, add user and manage   profile pages.&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Feature:&lt;/strong&gt; Invitation Zone Targeting&lt;/p&gt; &lt;blockquote&gt;  &lt;p&gt;Administrators can specify the SharePoint zone used during an invitation.   This feature is especially useful in a dual zone authentication environment   where you want all invitation requests to send the user to the Extranet zone   (even if the invitation is sent by an internal user). &lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Feature:&lt;/strong&gt; New E-mail Messages and Improved E-mail  Tokenization&lt;/p&gt; &lt;blockquote&gt;  &lt;p&gt;Each e-mail message now supports over 160 standard e-mail tokens (see   help documentation for full list). Each token now includes an HTML encoded   version to allow better e-mail client support. The addition of the new   tokens provides a very flexible e-mail message system. Standard token groups   include...&lt;/p&gt; &lt;/blockquote&gt; &lt;ul&gt;  &lt;ul&gt;   &lt;li&gt;ExtranetUrls &lt;/li&gt;   &lt;li&gt;ExtranetUser (Only when user is present) &lt;/li&gt;   &lt;li&gt;ExtranetUser.Profile (Only when user profile is present) &lt;/li&gt;   &lt;li&gt;Site &lt;/li&gt;   &lt;li&gt;SiteCollection &lt;/li&gt;   &lt;li&gt;User (Current SharePoint User) &lt;/li&gt;   &lt;li&gt;WebApplication &lt;/li&gt;   &lt;li&gt;Zone.Current &lt;/li&gt;   &lt;li&gt;Zone.Default &lt;/li&gt;   &lt;li&gt;Zone.Invitation&lt;/li&gt;  &lt;/ul&gt; &lt;/ul&gt; &lt;blockquote&gt;  &lt;p&gt;New e-mail messages have been provided to include the new tokens. The new   messages include a better HTML format, Invitation URL support, Extranet User   Profile attributes. The goal was to allow an administrator to setup the user   profile attributes and invitation zone and not have to worry about modifying   the e-mail messages.&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Feature:&lt;/strong&gt; Password Information Message&lt;/p&gt; &lt;blockquote&gt;  &lt;p&gt;Administrators can provide a password information message which provides   insight to the required password complexity during user registration,   password reset and add user pages.&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Feature:&lt;/strong&gt; View Users in Role&lt;/p&gt; &lt;blockquote&gt;  &lt;p&gt;Site Collection Administrators can new view all extranet accounts that   are members of a selected role.&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Feature:&lt;/strong&gt; Password Reset Support for User with Identical  E-mail Addresses&lt;/p&gt; &lt;blockquote&gt;  &lt;p&gt;When a user attempts to reset the password for their account and one or   more accounts are using the same e-mail address, the user is presented with   a list of matching accounts and is asked to select the matching account.   After the correct account is selected the user can continue to reset their   password.&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Feature:&lt;/strong&gt; Removed Delegation and Mail Provider Configuration&lt;/p&gt; &lt;blockquote&gt;  &lt;p&gt;The Delegation Provider and Mail Provider configuration options have been   deprecated. These options were deprecated to simplify the interface and   eliminate confusion. Implementation of this feature will be altered to   provide greater functionality in a future release.&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Feature:&lt;/strong&gt; Improved Installation Experience&lt;/p&gt; &lt;blockquote&gt;  &lt;p&gt;The ExCM installation experience has been improved. Improvements include   an improved interface which is easier to follow. The   SPSolutions.SharePoint.Delegation.wsp and the   SPSolutions.SharePoint.Delegation.Templates.Membership.wsp solutions have   been merged together to provide an easier installation experience. As a   result the Membership Delegation Templates feature has been merged with the   Delegation Web Components feature.&lt;/p&gt; &lt;/blockquote&gt; &lt;blockquote&gt;  &lt;p&gt;The Site Provisioning Assistant installation has been separated from the   Extranet Collaboration Manager during the Enterprise Edition installation.   The Site Provisioning Assistant Application is still bundled together in   this package.&lt;/p&gt;&lt;/blockquote&gt; &lt;span style="mso-theme mso-themetint: 217; mso-ansi-language: EN-GBcolor:text1;"&gt; &lt;strong&gt;Feature:&lt;/strong&gt; New Trial Licensing Model&lt;/span&gt; &lt;blockquote&gt;&lt;span style="mso-theme mso-themetint: 217; mso-ansi-language: EN-GBcolor:text1;"&gt;Installation of a trial license is no longer required to   evaluate the product. The application creates a 30-day trial license when   first accessed.&lt;/span&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/Asset.aspx?AI=2"&gt;Download an evaluation copy of ExCM&lt;/a&gt; or &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Pages/ContactUs.aspx"&gt;contact our sales team&lt;/a&gt; to arrange a &lt;a href="http://moss.sharepointsolutions.com/SharePoint-Add-ons/Pages/Demonstration.aspx"&gt;demonstration&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7192910-844785958757196154?l=sharepointsolutions.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=rkyn6AvpvTA:vQBF3_ES3b8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=rkyn6AvpvTA:vQBF3_ES3b8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=rkyn6AvpvTA:vQBF3_ES3b8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=rkyn6AvpvTA:vQBF3_ES3b8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=rkyn6AvpvTA:vQBF3_ES3b8:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=rkyn6AvpvTA:vQBF3_ES3b8:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?a=rkyn6AvpvTA:vQBF3_ES3b8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointSolutionsBlog?i=rkyn6AvpvTA:vQBF3_ES3b8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2008-12-15T10:33:03.848-08:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://sharepointsolutions.blogspot.com/2008/12/new-release-of-extranet-collaboration.html</feedburner:origLink></item></channel></rss>
