<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>SharePoint Magazine</title>
	
	<link>http://sharepointmagazine.net</link>
	<description>SharePoint Magazine is an online Magazine dedicated to the world of SharePoint</description>
	<pubDate>Wed, 03 Dec 2008 10:56:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/SharepointMagazine" type="application/rss+xml" /><feedburner:emailServiceId>2043870</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><item>
		<title>Customizing Search Series - Finally Customizing the Search Results</title>
		<link>http://feeds.feedburner.com/~r/SharepointMagazine/~3/473487233/customizing-search-series-finally-customizing-the-search-results</link>
		<comments>http://sharepointmagazine.net/technical/development/customizing-search-series-finally-customizing-the-search-results#comments</comments>
		<pubDate>Wed, 03 Dec 2008 10:56:51 +0000</pubDate>
		<dc:creator>stevemann</dc:creator>
		
		<category><![CDATA[Customisation]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[Technical]]></category>

		<category><![CDATA[customise]]></category>

		<category><![CDATA[results]]></category>

		<category><![CDATA[search]]></category>

		<category><![CDATA[sharepoint]]></category>

		<category><![CDATA[xsl]]></category>

		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=1004</guid>
		<description><![CDATA[ Welcome to the sixth and final article in the Customizing Search Series. We will be finally customizing the actual search results. Everything that was done previously was all part of the overall search customization experience.]]></description>
			<content:encoded><![CDATA[<p>Welcome to the sixth and final article in the Customizing Search Series. We will be finally customizing the actual search results. Everything that was done previously was all part of the overall search customization experience.</p>
<p>Perform a search within the Client scopes to bring up the Client Results page. Click on Site Actions and Edit Page. Edit the Search Core Results web part by clicking the Modify Shared Web Part from the Edit (dropdown) menu:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-1.bmp" ><img class="alignnone size-medium wp-image-1008" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-1.bmp" alt="" /></a></p>
<p>On the left hand side pane, under the Results Query Options, click inside the Selected Columns to make the blue ellipsis button appear. Click on the blue ellipsis button:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-2.bmp" ><img class="alignnone size-medium wp-image-1009" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-2.bmp" alt="" /></a></p>
<p>At the bottom of the text, before the &lt;/Columns&gt; tag, add a column entry for each managed property that was created for the BDC content source:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-3.bmp" ><img class="alignnone size-medium wp-image-1010" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-3.bmp" alt="" /></a></p>
<p>Click OK.</p>
<p>Next click on the XSL Editor under the Data View Properties:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs4.bmp" ><img class="alignnone size-medium wp-image-1007" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs4.bmp" alt="" /></a></p>
<p>The XSL entry will appear in the text dialog.  It may be easier to copy and paste the code out into a different code editor and then paste back into the dialog for the remaining XSLT steps.</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-5.bmp" ><img class="alignnone size-medium wp-image-1011" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-5.bmp" alt="" /></a></p>
<p><strong>XSLT: Overriding the results URL</strong></p>
<p>The tasks outlined in this section are for the scenario where we want to show a custom URL in the results versus the one returned from the normal search results. While this may not apply to everyone, the steps show how to add a new variable based on a custom search column and use it within the overall XSLT.</p>
<p>Locate the &#8220;This template is called for each result&#8221; section of the code.</p>
<p>Add a new variable name entry for the ClientURL under the two predefined variable entries (all variables should be in lowercase regardless of how the managed property was defined):</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="798" valign="top">&lt;xsl:variable name=&#8221;id&#8221; select=&#8221;id&#8221;/&gt; &lt;xsl:variable name=&#8221;url&#8221; select=&#8221;url&#8221;/&gt;<strong><em>&lt;xsl:variable name=&#8221;clienturl&#8221; select=&#8221;clienturl&#8221;/&gt;</em></strong></td>
</tr>
</tbody>
</table>
<p>Next, find and change all &#8220;$url&#8221; entries to &#8220;$clienturl&#8221;.</p>
<p>Find the &#8220;xsl:value-of select=&#8221;url&#8221;" entry within the hithighlightedproperties condition code (when statement). Change the &#8220;url&#8221; to &#8220;title&#8221;.</p>
<p>Locate the span class for srch-URL (span class=&#8221;srch-URL&#8221;). Within this section, locate the when condition for the hit highlighted properties as shown:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-6.bmp" ><img class="alignnone size-medium wp-image-1012" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-6.bmp" alt="" /></a></p>
<p>Replace the &#8220;hithighlightedproperties/HHUrl&#8221; with &#8220;clienturl&#8221;</p>
<p>Several lines down, replace the &#8220;url&#8221; in  &#8220;xsl:value-of select=&#8221;url&#8221;" with clienturl (xsl:value-of select=&#8221;clienturl&#8221;)</p>
<p>Click Save, Click OK on the web part tool pane and publish the page. The client search results should now show the custom client URL that is being returned from the BDC.</p>
<p><strong>XSLT: Creating the Additional Reference Links within the Results</strong></p>
<p>If you perform a Google search and you hit a website&#8217;s core address (such as Microsoft.com), there are additional reference links that appear within the search results:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-7.bmp" ><img class="alignnone size-medium wp-image-1013" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-7.bmp" alt="" /></a></p>
<p>You can add these to the MOSS Search results as well. The reference links can be displayed using standard HTML. This HTML should be placed after the &#8220;p class=&#8221;srch-Metadata&#8221; section (therefore after the p end-tag) :</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-8.bmp" ><img class="alignnone size-medium wp-image-1014" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-8.bmp" alt="" /></a></p>
<p><em>The &#8220;ENTER THE HTML HERE&#8221; message will not appear - this was entered for demonstration purposes.</em></p>
<p>The following is sample code within a &lt;div&gt; block for rendering the additional link references. The appropriate URLs should be retrieved from the BDC and entered appropriately (the columns used here are generalurl, contacturl, documenturl, and referenceurl):</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="798" valign="top">&lt;div&gt;&lt;table cols=&#8221;4&#8243; cellspacing=&#8221;5&#8243;&gt;&lt;tr&gt;     &lt;td&gt;&lt;/td&gt;    &lt;td&gt;</p>
<p>&lt;a href=&#8221;{$generalurl}&#8221; id=&#8221;{concat(&#8217;CSR_U_&#8217;,$id)}&#8221; title=&#8221;General Info&#8221; dir=&#8221;ltr&#8221;&gt;Matters&lt;/a&gt;</p>
<p>&lt;/td&gt;</p>
<p>&lt;td&gt;&lt;/td&gt;</p>
<p>&lt;td&gt;</p>
<p>&lt;a href=&#8221;{$contacturl}&#8221; id=&#8221;{concat(&#8217;CSR_U_&#8217;,$id)}&#8221; title=&#8221;Contact Information&#8221; dir=&#8221;ltr&#8221;&gt;Contact Information&lt;/a&gt;</p>
<p>&lt;/td&gt;</p>
<p>&lt;/tr&gt;</p>
<p>&lt;tr&gt;</p>
<p>&lt;td&gt;&lt;/td&gt;</p>
<p>&lt;td&gt;</p>
<p>&lt;a href=&#8221;{$documenturl}&#8221; id=&#8221;{concat(&#8217;CSR_U_&#8217;,$id)}&#8221; title=&#8221;Documents&#8221; dir=&#8221;ltr&#8221;&gt;Documents&lt;/a&gt;</p>
<p>&lt;/td&gt;</p>
<p>&lt;td&gt;&lt;/td&gt;</p>
<p>&lt;td&gt;</p>
<p>&lt;a href=&#8221;{$referenceurl}&#8221; id=&#8221;{concat(&#8217;CSR_U_&#8217;,$id)}&#8221; title=&#8221;References&#8221; dir=&#8221;ltr&#8221;&gt;References&lt;/a&gt;</p>
<p>&lt;/td&gt;</p>
<p>&lt;/tr&gt;</p>
<p>&lt;tr&gt;&lt;/tr&gt;</p>
<p>&lt;tr&gt;&lt;/tr&gt;</p>
<p>&lt;/table&gt;</p>
<p>&lt;/div&gt;</td>
</tr>
</tbody>
</table>
<p>Blank rows or cells are placed for spacing purposes. Additional URL properties will require additional variable entries as entered above (e.g. <strong><em>xsl:variable name=&#8221;generalurl&#8221; select=&#8221;generalurl&#8221;</em></strong>)</p>
<p>Here is a sample output:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-sample.bmp" ><img class="alignnone size-medium wp-image-1006" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/fs-sample.bmp" alt="" /></a></p>
<p><strong>Conclusion</strong></p>
<p>We&#8217;ve done many things with the MOSS Search capabilities but obviously there are many more features and functionality. If you would like to see other search topics covered please send them along to <a href="mailto:mann@rdacorp.com">mann@rdacorp.com</a>.</p>
<p><h3>This article was posted on:</h3>
<a href="http://sharepointmagazine.net" ><img src="http://sharepointmagazine.net/images/logo2.gif" border="0"/></a></p>
<p><a href="http://sharepointmagazine.net/technical/development/customizing-search-series-finally-customizing-the-search-results" >Customizing Search Series - Finally Customizing the Search Results</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SharepointMagazine?a=if9Po"><img src="http://feeds.feedburner.com/~f/SharepointMagazine?i=if9Po" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SharepointMagazine/~4/473487233" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sharepointmagazine.net/technical/development/customizing-search-series-finally-customizing-the-search-results/feed</wfw:commentRss>
		<feedburner:origLink>http://sharepointmagazine.net/technical/development/customizing-search-series-finally-customizing-the-search-results</feedburner:origLink></item>
		<item>
		<title>SharePoint Magazine talks to Bjørn Furuknap about his upcoming book "Building the SharePoint User Experience"</title>
		<link>http://feeds.feedburner.com/~r/SharepointMagazine/~3/472236001/sharepoint-magazine-talks-to-bj%c3%b8rn-furuknap-about-his-upcoming-book-building-the-sharepoint-user-experience</link>
		<comments>http://sharepointmagazine.net/people/sharepoint-magazine-talks-to-bj%c3%b8rn-furuknap-about-his-upcoming-book-building-the-sharepoint-user-experience#comments</comments>
		<pubDate>Mon, 01 Dec 2008 15:58:21 +0000</pubDate>
		<dc:creator>Arno Nel</dc:creator>
		
		<category><![CDATA[Interviews]]></category>

		<category><![CDATA[People]]></category>

		<category><![CDATA[Bjørn]]></category>

		<category><![CDATA[Books]]></category>

		<category><![CDATA[Furuknap]]></category>

		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=1565</guid>
		<description><![CDATA[SharePoint Magazine has spoken with Bjørn Furuknap, the author of the upcoming book "Building the SharePoint User Experience" and the related article series "Customizing the SharePoint User Experience" right here on SPM. We asked him about his book, the articles, and writing online.]]></description>
			<content:encoded><![CDATA[<p>SharePoint Magazine has spoken with Bjørn Furuknap, the author of the upcoming book &#8220;Building the SharePoint User Experience&#8221; and the related article series &#8220;Customizing the SharePoint User Experience&#8221; right here on SPM. We asked him about his book, the articles, and writing online.</p>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="Comment" width="48" height="48" />Bjorn, first tell me a bit about yourself? Who are you and why should people listen to what you say?</p>
<blockquote><p><img class="alignnone" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />My name is Bjørn, and I&#8217;m a SharePointholic. I&#8217;ve been in IT since I can remember, but started my professional career in 1993. Since then I have worked on both the admin and developer side of the fence.</p>
<p>I set up my first SharePoint installation for my own company in 2001 and have since installed countless SharePoints, ranging from small fire-and-forget team sites to completely customized massive portals.</p>
<p>However, I didn&#8217;t really get into the SharePoint developer thing until WSS3 came out. I started writing webparts and stuff for WSS2 but never liked the development experience.</p>
<p>As to why people should listen, I have no idea. Perhaps because I am passionate about what I do and in addition passionate about writing about what I do. That passion means I put a lot of time and energy into continualy improving and learning.</p>
<p>People seem to appreciate what I write based on feedback and blog readership, and if they can learn something from it, thats even better.</p></blockquote>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="Comment" width="48" height="48" />What will the topic of the book?</p>
<blockquote><p><img class="alignnone" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />The book will be focused on understanding the architecture of SharePoint from a user experience perspective. It will be a book for architects, developers, and designers who want to truly understand the architecture of SharePoint and how they can apply that to create great user experiences.</p></blockquote>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="Comment" width="48" height="48" />Will this be another CSS/master pages book then?</p>
<blockquote><p><img class="alignnone" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />Ah, no, by all means, no. I make a clear distinction between experience and interface here. The user interface is just a small part of the experience. Other factors such as functionality of pages, content types, working with email on lists, and modifying the authoring experience are all part of the user experience. At the time of this writing I have written about one third of the content for the book and I have written less than two full paragraphs relating to design, css and master pages.</p>
<p>I make no attempt to teach people css or html, and there is no need to know any of that stuff to learn everything that is in the book.</p></blockquote>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="Comment" width="48" height="48" />Who will be the primary audience?</p>
<blockquote><p><img class="alignnone" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />Everyone! Buy one for each of your friends, and two for yourself!</p>
<p>Jokes aside, the book is primarily for SharePoint developers who are familiar with the basics but want to learn more and go deeper into SharePoint architecture. You should know your master page theory, but you don&#8217;t need to know the CAML required to create a list from scratch. You will after you have read the book, though.</p>
<p>The secondary audience will be architects, developers, and designers who seek to better understand the options for enhancing the user experience and thus be a better resource for others who may not know all the nitti-gritty details of what is possible.</p></blockquote>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="Comment" width="48" height="48" />Ok, so tell me a bit more about the actual contents.</p>
<blockquote><p><img class="alignnone" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />The book will be divided into three sections or parts. The first part will focus on getting the bare minimum of SharePoint knowledge down, such as basic feature design and CAML/XML basics. The second part is a deep dive into the core of SharePoint, going from the site itself down to inner workings of custom fields. Then, in the third section, we put all that knowledge into creating a new solution from bottom up.</p>
<p>I am also trying to focus on unique knowledge and stay away from what has already been written in other books. Of course, there will always be overlaps, but much of what I write I have yet to find described anywhere else.</p></blockquote>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="Comment" width="48" height="48" />Can you give some examples of unique content?</p>
<blockquote><p><img class="alignnone" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />Sure! For example I have yet to find any books that explains the steps, or actually step singular, required to email enable a custom list. Anyone can click the &#8216;Email enable this list&#8217; for a document library or several other list template types, but that does not work for custom list, or a number of other lists. In the book I explain how email enabling works down to reading the reflected source code of SharePoint, and then explain how to email enable custom lists using only a single line of code.</p>
<p>I also take the time to test every attribute and feature of definitions to verify the official documentation. Sadly there are many examples where the documentation is either lacking or even plain wrong. I make a note in the text every time I find something like this and document the findings by showing reflected source code as well examples.</p></blockquote>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="Comment" width="48" height="48" />How does the article series &#8220;Customizing the user experience&#8221; fit into all this?</p>
<blockquote><p><img class="alignnone" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />The article series actually came first, I only started thinking about the book after I saw that I would never be able to fit everything I wanted into an online series.</p>
<p>The online series stands on its own, and you can learn plenty from just reading that and never read the book. If you do get the book, however, you fill find tons of more information on each topic. I have had to prioritize and cut content from the online series in order to remain sanely short.</p>
<p>If you compare the first part, which is the longest article I have written online, the book chapter for the same topic is about three times as long. The &#8220;Lists and list templates&#8221; part is almost ten times as long in the book because I can go deeper and cover more ground.</p></blockquote>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="Comment" width="48" height="48" />Why would this book be any different than other books on SharePoint?</p>
<blockquote><p><img class="alignnone" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />I focus highly on also creating a great reading experience by trying to tell a story while explaining the technical details. When I start a new chapter I first create the story, which often has absolutely nothing to do with the contents of the chapter itself. For instance, chapter 7, which details lists, list forms, and views, the story revolves around a journey through a forest searching for a hidden monster that lives in a cave.</p></blockquote>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="Comment" width="48" height="48" />A monster?</p>
<blockquote><p><img class="alignnone" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />Hehe, yeah, I&#8217;ve spoken to many a SharePoint developer who are trying to create views from scratch. It is quite often painful and many have &#8216;fallen&#8217; to the beast, running out of the room while cursing SharePoint and the day Bill Gates was born.</p></blockquote>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="Comment" width="48" height="48" />Sounds more like a fairy tale than a SharePoint book</p>
<blockquote><p><img class="alignnone" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />Perhaps, but there is very little direct story telling here. I use humor and other literary tools to hopefully make the reading a bit more enjoyable. I write the story first to set the mood and pace for different sections of the chapter. I realize that people will buy Tolkien books if they want to read stories, so 99% of the content is still pure technical skill building. The story is just as much a tool for me in writing a chapter as it will be for the reader. If it&#8217;s not fun for me to write it sure as heck won&#8217;t be any fun to read.</p>
<p>The message in chapter 7 is: &#8220;Don&#8217;t go into the cave unless you are prepared, and the weapons you choose are the knowledge you gain. &#8221;</p>
<p>I was also thinking of having the chapter on fields and columns take the reader into the role of a private investigator in a murder mystery, complete with femme fatales and gunfights, trying to find out what killed the text field type. I figured a lot of the readers like RPGs so they might appreciate being part of the book rather than just observing. I still have to get that past my editor, though, he might not see the fun that I do.</p></blockquote>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="Comment" width="48" height="48" />Why do you write so much?</p>
<blockquote><p><img class="alignnone" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />Heh, I love to write, but more importantly I want to participate in the community, be part of the experience in a manner of speaking. There&#8217;s a certain mentality in Norway called Jante that frowns upon anyone who stands out. I hate that mentality and hopefully by contributing to the community and showing what can be done if one participates I can inspire others to be more active as well. In the long run this means more people on the scene and by random chance alone at least some of them will be good and teach me something new <img src='http://sharepointmagazine.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p></blockquote>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="Comment" width="48" height="48" />So you are not making any money off this?</p>
<blockquote><p><img class="alignnone" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />Not directly, no. I do get royalties from the book, but not nearly the same as I would have made had I put the same amount of work into customer projects. However, demonstrating skill and being visible is a great way of getting attention, and I have noticed a rise in requests for my time.</p></blockquote>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="Comment" width="48" height="48" />Why did you choose to write for SharePoint Magazine?</p>
<blockquote><p><img class="alignnone" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />It was just a stroke of luck I guess. I had an idea for my first article on runtime modification of components and had begun writing for my own blow when I happened to stumble across the then unlaunched SharePoint Magazine web site. I shot off an email to you and you accepted. It&#8217;s a lot easier to reach a wider audience when writing for a magazine than just in my own blog.</p>
<p>Now that the magazine has been up for a few months I see that the value to the community is much higher than I expected. The quality of the articles, the topics available, and the update frequency is spot on. I am really happy to be part of a great team of authors here.</p></blockquote>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="Comment" width="48" height="48" />Thank you Bjorn for taking the time to answer these questions. Do you have any final thoughts?</p>
<blockquote><p><img class="alignnone" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />Yes, absolutely. If you are planning on participating in the community, do so. Take the first step, get a blog up, start writing. The SharePoint knowledge pool is growing worldwide but demand is growing even faster. Share your knowledge so everyone can benefit.</p>
<p>Oh, and I love my wife very much. I promised her I&#8217;d say that <img src='http://sharepointmagazine.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p></blockquote>
<p><strong>If you want more information about the articles, the book or Bjorn, here&#8217;s how you will get that:<br />
</strong><a href="http://sharepointmagazine.net/author/furuknap/"  target="_blank">Bjorn&#8217;s articles on SharePoint Magazine</a><br />
<a href="http://www.understandingsharepoint.com/userexperience" onclick="javascript:pageTracker._trackPageview('/www.understandingsharepoint.com');" target="_blank">&#8220;Building the SharePoint User Experience&#8221;</a>, book blog<br />
<a href="http://furuknap.blogspot.com/" onclick="javascript:pageTracker._trackPageview('/furuknap.blogspot.com');" target="_blank">Furuknap&#8217;s SharePoint Corner</a>, Bjorn&#8217;s blog</p>
<p><h3>This article was posted on:</h3>
<a href="http://sharepointmagazine.net" ><img src="http://sharepointmagazine.net/images/logo2.gif" border="0"/></a></p>
<p><a href="http://sharepointmagazine.net/people/sharepoint-magazine-talks-to-bj%c3%b8rn-furuknap-about-his-upcoming-book-building-the-sharepoint-user-experience" >SharePoint Magazine talks to Bjørn Furuknap about his upcoming book &quot;Building the SharePoint User Experience&quot;</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SharepointMagazine?a=uRx4o"><img src="http://feeds.feedburner.com/~f/SharepointMagazine?i=uRx4o" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SharepointMagazine/~4/472236001" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sharepointmagazine.net/people/sharepoint-magazine-talks-to-bj%c3%b8rn-furuknap-about-his-upcoming-book-building-the-sharepoint-user-experience/feed</wfw:commentRss>
		<feedburner:origLink>http://sharepointmagazine.net/people/sharepoint-magazine-talks-to-bj%c3%b8rn-furuknap-about-his-upcoming-book-building-the-sharepoint-user-experience</feedburner:origLink></item>
		<item>
		<title>Successful SharePoint Projects, Myth or Reality?</title>
		<link>http://feeds.feedburner.com/~r/SharepointMagazine/~3/471395305/successful-sharepoint-projects-myth-or-reality</link>
		<comments>http://sharepointmagazine.net/news/successful-sharepoint-projects-myth-or-reality#comments</comments>
		<pubDate>Sun, 30 Nov 2008 12:02:37 +0000</pubDate>
		<dc:creator>Andrew Walmsley</dc:creator>
		
		<category><![CDATA[Analysis]]></category>

		<category><![CDATA[News]]></category>

		<category><![CDATA[management]]></category>

		<category><![CDATA[project]]></category>

		<category><![CDATA[sharepoint]]></category>

		<category><![CDATA[Workshares]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=1735</guid>
		<description><![CDATA[This article will highlight many issues organisations will experience as a consequence of lack of experience, poor decision making or expectation management with the business sponsors.]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>How you measure the success of any SharePoint project is open to much debate. Your typical tangible metrics around how a particular project has performed in terms of Time, Money and Quality, are still the main areas are what most organisations focus on upon to gauge their ultimate success. This is irrespective of whether or not the true ‘measures of success’&#8217; from a SharePoint deployment aren’t actually felt by the business until longer after the project team has been moved on to other things.</p>
<p>But with the introduction and importantly adoption of SharePoint into many organisations growing exponentially over since the release of MOSS 2007 last year, it brings with it a number of challenges to say the least. The delivery of Microsoft’s premier collaborative platform, SharePoint, will put under pressure one or more of these metrics during the project life cycle, as any novice or experienced SharePoint, traditional infrastructure or software project managers whom take on the management and delivery of these projects, will tell you.</p>
<p>Having spent the last 7 or so years leading successful bid teams to win and then go on to manage the deployments of SharePoint into large and small businesses, spread across several industry sectors, (and in some cases to help organisations ‘recover’ failed projects), this article looks at the reasons why SharePoint projects can and do go awry. And in an effort to educate readers through the sharing of knowledge and experience here in this article, it will highlight some areas for you to be aware of and plan for accordingly so that you increase your chances of a successful SharePoint project.</p>
<h2>Why are SharePoint projects difficult to deliver?</h2>
<p>There are many reasons why SharePoint related projects run into difficulty and like any other IT project, they fall under the following headlines well documented by others:</p>
<ul>
<li>Poor Scope Definition</li>
<li>No inherent Project Culture within the business</li>
<li>Poor Stakeholder Management</li>
<li>Poor Project Governance</li>
<li>Poor Project Management skills</li>
<li>Weak Planning (for the project and beyond once it has been deployed)</li>
<li>Lack of proper change and risk identification and management.</li>
</ul>
<p>However, there are other reasons that organisations need to be aware of.</p>
<h2>Reasons Specific to SharePoint Projects</h2>
<p>Here are some of the main additional reasons why SharePoint projects fail to live up to expectations and in particular areas your organisation needs to be aware of and plan for accordingly to increase the likelihood of success of your SharePoint deployments:</p>
<blockquote><p><em><strong>Underestimating the Scope of the Project Deliverables</strong></em></p></blockquote>
<p>In particular for the medium to large organisations, they often fail to plan and budget properly for the enormity of the Project deliverables that feature in SharePoint deployments.</p>
<p>These are often in areas such as:</p>
<ul>
<li>Strategic and Operational impact business practices</li>
<li>SharePoint Governance</li>
<li>Project Team Resources and skills</li>
<li>Planning and Design (in particular around those that demand re-branding of SharePoint interface)</li>
<li>Infrastructure (to support both internal and collaborative working externally)</li>
<li>Application Delivery, Build and Test (In particular for deployment with bespoke elements)</li>
<li>Migration of content or documents from file shares, existing intranet(s) and other line of business applications, (databases, etc)</li>
<li>Release &amp; Change Management</li>
<li>Launch Activity and User Adoption going forward</li>
<li>IT Helpdesk and User support following Go-Live.</li>
</ul>
<blockquote><p><em><strong>Business ‘Quick Wins’ to demonstrate value</strong></em></p></blockquote>
<p>More often than not, SharePoint is first introduced as a replacement Intranet. Fine, it will do that very well. But often businesses forgot to include in their planning, enhancements to the intranet that could give it the ‘wow’ factor when the business first starts to use it.</p>
<p>Such ‘Quick Wins’ can be relatively minor in effort, but tremendously valuable when try to gain momentum and secure support from the wider business that the adoption of SharePoint within the business is <em>more</em> than just an intranet replacement solution. They are more aligned to a different way of working for the business which should be one of the strategic objectives is much more than this and are key to business adoption.</p>
<p>Such ‘quick wins’ should be identified earlier on and planned into a release program following the launch of the initial project to ensure the deployment of SharePoint is a success not just at the beginning, but continues to be so as it is further utilised and deployed within the business.</p>
<blockquote><p><em><strong>Short term planning, long term pain</strong></em></p></blockquote>
<p>Forget to include long term planning and management of your SharePoint project at your peril!</p>
<p>Businesses often forget to include the long term planning within the initial phase at the beginning, especially around the underlying architecture to support potential changes in the future. Thus potentially needing to re-invest in significant infrastructure costs later on when for example you wish to introduce an extranet facility or include another business units’ content following a business buyout.</p>
<p>It is critical you consider those changes planned for the future <em>now</em> within the SharePoint underlying architecture &amp; infrastructure. This will I guarantee save you money and pain later on!</p>
<blockquote><p><em><strong>Lack of SharePoint experience in your Project team</strong></em></p></blockquote>
<p>Do you use a one of your team members whom has never worked with SharePoint before? Or hire a SharePoint Developer or SharePoint Consultant on your project team, or perhaps both…?What about SharePoint Architect, Business Analysts, Web Designer or even an experienced SharePoint Project Manager?</p>
<p>For many larger projects ALL of these resources are needed and getting this wrong in terms of the mix of roles and experience of resources is one of the major reasons why projects will fail, as project planning around resourcing is badly managed and underestimated by the team at the beginning.</p>
<p>The product feature set is vast and all too often project teams are poorly equipped in terms of the relevant team members experience of the product core features, including the underlying infrastructure to support the larger implementations. It is critical you understand the challenges here and ensure you get the right resources on board and consider carefully whether or not to use a single developer/consultant resource hoping they will cover it all. The chances are they won’t, will struggle to meet deadlines, cause project overruns  and in the end it will cost you a lot more to make it right or worse you abandon a sound valuable strategic platform because of a poor initial experiences.</p>
<blockquote><p><em><strong>Lack of SharePoint Project Management Delivery experience</strong></em></p></blockquote>
<p>Often overlooked, but good solid experience of managing SharePoint related projects is worth its wait in gold. Often, IT departments and outside consultancy’s will assume its like every other Microsoft infrastructure related project, which it is not! Nor is it like any other traditional software related project either.</p>
<p>It is more like something in between, which is why it proves challenging for IT management and existing Project Managers in either camp to get their heads around the issues and challenges. This is both at the beginning in terms of planning, in the middle in terms of day to day management and towards the end when you are ready to go live and you have underestimated all the activities that need to happen to make it visible and importantly adopted by your users both from launch day and beyond.</p>
<blockquote><p><em><strong>Wrong Infrastructure and Poor Architecture</strong></em></p></blockquote>
<p>An area often overlooked, but be warned a little forethought here can save you a lot of money/effort. As the SharePoint product spans across both intranet, extranets and now public facing web sites, the right infrastructure supporting SharePoint users is crucial for successful delivery and operation.</p>
<p>The end to end design of a SharePoint technical architecture  will often need to touch on other technologies such as networks, firewalls, Proxy Servers, ISA servers, anti-virus software and database clustering to name but a few. In addition, capacity planning for your hardware is also important as quite often you will need to potentially plan for every 1MB of user storage, over 3mb (yes 3!) of storage space for your whole environment!!</p>
<p>Together with a relatively complicated, and costly licensing model from Microsoft, do your homework on this area before your commit your budgets and commence your project.</p>
<blockquote><p><em><strong>Customisation or Configuration?</strong></em></p></blockquote>
<p>I will describe ‘customisation’ is essentially an activity whereby a SharePoint developer deploys bespoke handwritten code within a SharePoint environment, whereas ‘configuration’ is the manipulation of existing “out of the box – (OOB)” features to meet your needs.</p>
<p>More often than not, many organisations will opt for the former as they don’t know the latter well enough and assume they have no choice, but this should be counselled against doing so without proper consideration of the impact and risks.</p>
<p>MOSS/WSS are very pervasive technologies and being able to support the environments both from launch to decommissioning/migration is key.  The MOSS/WSS feature set is huge, hence understanding what you can do out of the box with the product is difficult, if not impossible for one individual resource to know. But that doesn’t mean you should turn to custom development, more you need seek and if need be to bring in the right skills and experience of those that do understand how to get the most out of the platforms array of features, before you commit to development resourcing on the project.</p>
<p>Custom development definitely has its place however, but do not underestimate the effort it takes for even your best developers to come up to speed with the inner workings of SharePoint. Particular areas for your Training/R &amp; D efforts are that of SharePoint branding, workflows and how you deploy your solutions, as the three main areas which crop up as being the more challenging than you perhaps expected or planned for.</p>
<p>Hence, having the experience to know when to use custom development is important because remember, you pay for your custom changes several times, not just the few days of developer time for a minor enhancement that doesn’t seem to be there out of the box. Namely you pay for the:</p>
<blockquote><p>1. Initial bespoke code</p></blockquote>
<blockquote><p>2. Testing when service packs or ‘hot fixes’ come along that may break your bespoke code (could be several times in the life of the platform)</p>
<p>3. Finally, when you migrate to next version of SharePoint or new product, and the migration tools don’t like your bespoke work as its not supported.</p></blockquote>
<p>So, do you really customise SharePoint or configure…? Will the customisation you are about to embark upon be really worth it to your business needs? Really think this through before you open up your SharePoint deployment with Visual Studio or SharePoint Designer. Quite often its easier and hence cheaper to modify the business process or to leave out the functionality altogether. On this latter point I have witnessed all too often a bespoke ‘function’ not available out of the box, be custom built at great expense, only for it to be rarely if at all used by the end user.</p>
<blockquote><p><strong><em>Poor Planning for User Adoption</em></strong></p></blockquote>
<p><strong></strong></p>
<p>There is little point in designing and deploying the ‘best’, most detailed SharePoint solution if from launch date, very few users can access it, those that can can’t seem to find information or use it very well and those that can’t access it that eventually do, don’t go on to then use it and nor reap the benefits of collaborative working.</p>
<p>Planning for ‘Launch and User Adoption’ and the results of this are key to the ‘perceived’ success of the project more so than just the usual time/quality/money metrics. It revolves around planning, stakeholder management and user awareness, be that in form of training or briefing them of the new ways in which to enhance and improve how they work and make their jobs easier.</p>
<p>Businesses should have a longer engagement plan of objectives, deliverables,budgets and milestones for enhancements to the solution following the initial launch. Such long term planning is often missed.</p>
<h2>Conclusion</h2>
<p>This article has highlighted many issues organisations deploying or are about to will come across and indeed, many organisations will face difficulties in some or all of the above, as a consequence of lack of experience, poor decision making or expectation management with the business sponsors.</p>
<p>So what do organisations do to avoid many of the issues raised in this article. Quite simple, if you can start small (don’t run before you can walk so to speak) do so and get to know the vast array of features and functions available out of the box with the platform. Do not let loose your developers on a project until you have fully explored the rich feature set provided out of the box and established that the end result is really worth it to the business when all costs (short and long term) associated with custom development are weighed up.</p>
<p>If you’re planning a large deployment however, plan, plan and plan some more, review your approach carefully and seek the knowledge and wisdom of others whom have done it before, know the pitfalls and have learnt the lessons before you commit your resources.</p>
<p>Finally, it’s worth considering getting specialist advice from the outset from those that have been there before and can help your organisation through this period of change and allow your users to reap the full benefits of using Microsoft’s SharePoint collaborative platform whilst allowing your to get on with doing what you do best. If you do go external for such resources, then ensure appropriate levels of knowledge transfer take place to your staff during ALL phases of the project and not just at the handover!</p>
<p>Andrew Walmsley</p>
<p>Director – WorkShares Limited © 2008</p>
<p><h3>This article was posted on:</h3>
<a href="http://sharepointmagazine.net" ><img src="http://sharepointmagazine.net/images/logo2.gif" border="0"/></a></p>
<p><a href="http://sharepointmagazine.net/news/successful-sharepoint-projects-myth-or-reality" >Successful SharePoint Projects, Myth or Reality?</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SharepointMagazine?a=IDeqo"><img src="http://feeds.feedburner.com/~f/SharepointMagazine?i=IDeqo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SharepointMagazine/~4/471395305" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sharepointmagazine.net/news/successful-sharepoint-projects-myth-or-reality/feed</wfw:commentRss>
		<feedburner:origLink>http://sharepointmagazine.net/news/successful-sharepoint-projects-myth-or-reality</feedburner:origLink></item>
		<item>
		<title>A tribute to the humble leave form - part 6</title>
		<link>http://feeds.feedburner.com/~r/SharepointMagazine/~3/468255566/a-tribute-to-the-humble-leave-form-part-6</link>
		<comments>http://sharepointmagazine.net/technical/a-tribute-to-the-humble-leave-form-part-6#comments</comments>
		<pubDate>Fri, 28 Nov 2008 09:29:13 +0000</pubDate>
		<dc:creator>cleverworkarounds</dc:creator>
		
		<category><![CDATA[Help]]></category>

		<category><![CDATA[Technical]]></category>

		<category><![CDATA[User]]></category>

		<category><![CDATA[forms]]></category>

		<category><![CDATA[infopath]]></category>

		<category><![CDATA[leave]]></category>

		<category><![CDATA[process]]></category>

		<category><![CDATA[sharepoint]]></category>

		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=1498</guid>
		<description><![CDATA[This time around, let's take care of the "reduce data entry" requirement, and leverage some of InfoPath's useful features to make our form smarter.]]></description>
			<content:encoded><![CDATA[<p>Hi again</p>
<p>When I started this series of articles, I knew it would be quite a few parts and ambitious in its way. But after reading some of the other great articles on SharePoint Magazine, such as Bjørn Furuknap&#8217;s first article on <a href="http://sharepointmagazine.net/technical/development/customizing-the-user-experience-of-sharepoint-overview-of-the-default-sharepoint-interface-from-a-technical-point-of-view-part-1-of-6"  target="_blank">customising the user experience</a>, I&#8217;m now feeling like I picked the easiest topic of all!</p>
<p>Seriously, Bjørn, part 1 of your series is the closest experience I can imagine to any man giving birth! I bet you feel relieved getting that one out of your system!</p>
<p>So, do I feel guilty that my subject matter is easier? Am I suffering nerdiness envy?</p>
<p>Hell, no! I&#8217;ll stick to my fantasy world of user acceptance testing with Homer Simpson any day!</p>
<h2>Previously&#8230;</h2>
<p><em>Given that there are big time gaps in getting these articles out, I&#8217;d just like to reiterate that this series is pitched at a very wide audience, so hard-core nerds will probably find it waffly and frustrating. But then again, most regular people find hard core nerds waffly and frustrating <img src='http://sharepointmagazine.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</em></p>
<p>I have been writing this series from the point of view of a frustrated implementation developer/engineer who has to deal with a clueless business development manager and a difficult customer. This, of course, is completely unfamiliar territory for all implementation developer/engineers because none of you reading this would have ever experienced such a situation, right? &#8230; hehe <img src='http://sharepointmagazine.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image1.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb1.png" border="0" alt="image" width="204" height="237" /></a></p>
<p>Part one of this series introduced some background and provided the requirements for the leave application/approval process for the Springfield nuclear power plant. Those requirements were:</p>
<li>Automatic identification of requestor</li>
<li>Reduce data entry</li>
<li>Validation of dates, specifically the automatic calculation of days absent (excluding weekends)</li>
<li>Mr Burns is not the only approver, we will need the workflow to route the leave approval to the appropriate supervisor</li>
<li>We have a central leave calendar to update</li>
<p>Parts two to four were really the &#8220;slick presales demo&#8221; parts of this series where the world is promised to the client and, hence, expectations were completely off the planet. Thus, we started out nice and easy in part <a href="http://sharepointmagazine.net/technical/customisation/a-tribute-to-the-humble-leave-form-part-2"  target="_blank">two</a> and <a href="http://sharepointmagazine.net/technical/administration/a-tribute-to-the-humble-leave-form-part-3"  target="_blank">three</a>, where we introduced InfoPath 2007 and went through the exercise of importing the existing Springfield MSWord based form. We then added some data entry controls and tidied up the formatting. In <a href="http://sharepointmagazine.net/technical/customisation/a-tribute-to-the-humble-leave-form-part-4"  target="_blank">part four</a>, we published this form to SharePoint itself.</p>
<p>All in all, the first four articles covered some pretty straightforward stuff. Now, however, the salesman has moved on and our intrepid engineer is starting to get into the pointy end of things. In <a href="http://sharepointmagazine.net/technical/a-humble-tribute-to-the-leave-form-part-5"  target="_blank">part five</a> we delved into the scary world of web services and InfoPath data connections so satisfy the requirement of automatic identification of the requestor. That was a bit of a jump, wasn&#8217;t it?</p>
<p>This time around, let&#8217;s take care of the &#8220;reduce data entry&#8221; requirement, and leverage some of InfoPath&#8217;s useful features to make our form smarter. For those who found <a href="http://sharepointmagazine.net/technical/a-humble-tribute-to-the-leave-form-part-5"  target="_blank">article 5</a> a bit heavy, this one is actually quite a bit easier (but it&#8217;s just a brief lull before we get to coding!). At the end of part 5 I said I&#8217;d deal with how to automagically handle the employee number - but I have decided to take care of that a little later.</p>
<h2>Preventing a rift in the space-time continuum</h2>
<p><em>Yeah, I know I was using the Simpsons theme for this series, but today I am dropping in a dash of Heroes.</em></p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image2.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb2.png" border="0" alt="image" width="141" height="175" align="right" /></a>First up, we need to add some logic to the form so that it doesn&#8217;t submit crap (that&#8217;s the technical term for &#8220;invalid&#8221;) information. For example, we want to make sure that you cannot return to work on a date *before* you leave - unless you&#8217;re <a href="http://en.wikipedia.org/wiki/Hiro_Nakamura" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');" target="_blank">Hiro Nakamura</a>, of course.</p>
<p>Generally, for the rest of us who cannot bend time, you do actually come back to work at some point *after* you leave, so let&#8217;s make the necessary changes to ensure that our form does not destroy the world in some space-time vortex.</p>
<p>Today we are interested in the three date/time fields as shown below.</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image3.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb3.png" border="0" alt="image" width="466" height="86" /></a></p>
<p>If you recall in <a href="http://sharepointmagazine.net/technical/administration/a-tribute-to-the-humble-leave-form-part-3"  target="_blank">part three</a> where we <a href="http://sharepointmagazine.net/technical/administration/a-tribute-to-the-humble-leave-form-part-3"  target="_blank">created the form controls</a>, we gave them the meaningful names of CommenceDate, CompletionDate, ReturnDate.</p>
<p><em>For reference, at any time, you can review your field names easily by clicking the &#8220;Data Source&#8221; link in the InfoPath design pane as shown below.</em></p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/07/image31.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/image31-thumb.png" border="0" alt="image" width="133" height="332" /></a> <a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image4.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb4.png" border="0" alt="image" width="188" height="329" /></a></p>
<p>So, we have these three date fields and the rules are:</p>
<ul>
<li>The completion date cannot be *before* the commencement date.</li>
<li>The return to work date cannot be *before* the completion date.</li>
</ul>
<p>When you think about what we are doing here, we are <strong>validating data </strong>to make sure that it matches our business rules. Fortunately for us, InfoPath has some nice capabilities here to assist. Even better, they called it &#8220;Data Validation&#8221;. So, let&#8217;s take a closer look&#8230;</p>
<ul>
<li>Select the &#8220;Completion Date&#8221; control, right click and choose &#8220;Data Validation&#8221;</li>
</ul>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image5.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb5.png" border="0" alt="image" width="345" height="301" /></a></p>
<p>You are presented with a fairly unexciting text box asking you to add a <strong>condition</strong> that determines whether the value entered is valid. Clicking the &#8220;Add&#8230;&#8221; button displays the dialog box to add a condition. <em>It is quite common to have multiple conditions that need to be satisfied in order for the data entered to be considered valid</em>.</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image6.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb6.png" border="0" alt="image" width="260" height="166" /></a> <a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image7.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb7.png" border="0" alt="image" width="387" height="165" /></a></p>
<p>In our case, we wish to ensure that the CompletionDate field cannot contain a value that is less than the CommenceDate field. Create this condition by specifying &#8220;less than&#8221; from the middle drop down box, and then picking the &#8220;CommenceDate&#8221; field for the third dropdown box.</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image8.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb8.png" border="0" alt="image" width="293" height="138" /></a> <a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image9.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb9.png" border="0" alt="image" width="320" height="138" /></a></p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image10.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb10.png" border="0" alt="image" width="224" height="257" /></a> <a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image11.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb11.png" border="0" alt="image" width="345" height="149" /></a></p>
<p>Clicking OK and we have our completed validation condition!</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image12.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb12.png" border="0" alt="image" width="330" height="210" /></a></p>
<p>One final OK and we are back at our form and ready to test this. Rather than publish the form to SharePoint now, we can make use of InfoPath&#8217;s &#8220;Preview&#8221; button on the toolbar and test it out. Below I have an example preview where Homer has been identified as per the <a href="http://sharepointmagazine.net/technical/a-humble-tribute-to-the-leave-form-part-5"  target="_blank">previous post</a>. Additionally, I have used the date picker to specify the commencement date (October 25 2008) of leave.</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image13.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb13.png" border="0" alt="image" width="445" height="258" /></a></p>
<p>What do you now see on the Completion Date field? What&#8217;s with that red asterix? Maybe I should hover my mouse over it and take a look, eh?</p>
<p>Aww&#8230; How sweet! A tooltip that matches the description I gave for this data validation condition. Well, what do you know? I spelt data instead of date (don&#8217;t worry I&#8217;ll fix it up later).</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image14.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb14.png" border="0" alt="image" width="664" height="67" /></a></p>
<p>So, let&#8217;s try and defy time, then. I will enter October 24th as my return date. Doesn&#8217;t seem vary happy does it?</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image15.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb15.png" border="0" alt="image" width="381" height="128" /></a></p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image16.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb16.png" border="0" alt="image" width="387" height="68" /></a></p>
<p>But if I change the date to the 25th of October (therefore validating the rule we set up), InfoPath happily accepts the value.</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image17.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb17.png" border="0" alt="image" width="392" height="64" /></a></p>
<h2>That it? That was easy!</h2>
<p>Yeah, it was very easy so what are you complaining about? <strong>Easy is good </strong>and there should be more of it!</p>
<p>We now need to do the same thing for the &#8220;Return to Work&#8221; form field. Essentially, we perform the very same steps and thankfully for the both of us, I am not going to smother you with screenshots. This is where you try it yourself and instead I will simply list the steps and one screenshot.</p>
<ol>
<li>Right click the ReturnDate field and choose Data Validation</li>
<li>Add a new validation condition where the ReturnDate is less than the CompletionDate</li>
<li>Add a tooltip text &#8220;Return date cannot be before the completion date&#8221;</li>
<li>Click OK twice and test using the preview button</li>
</ol>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image18.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb18.png" border="0" alt="image" width="398" height="171" /></a></p>
<h2>The published experience</h2>
<p>Now that we have successfully tested the validation rules for the date fields, let&#8217;s publish the form to SharePoint and see what it all looks like. I followed the exact publishing steps that I outlined in <a href="http://sharepointmagazine.net/technical/customisation/a-tribute-to-the-humble-leave-form-part-4"  target="_blank">part 4</a>, so please refer to that article if you need a recap.</p>
<p>I navigated to the forms library as described in part 4 and created a new form.</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/07/image59.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/07/image-thumb57.png" border="0" alt="image" width="244" height="151" /></a></p>
<p>I then deliberately entered bad data into the form and sure enough, the data validation rules picked up on the issue. Excellent - Waylon Smithers is very pleased!</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image85.png" ><img style="0px" src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image85-thumb.png" border="0" alt="image" width="493" height="394" /></a></p>
<h2>Reviewing our progress&#8230;</h2>
<p>So, since we are about to see off part 6, our Project Manager wants to get a status update on how the Springfield leave form project is progressing. So, after 6 articles, what have we achieved? To remind you, the requirements were:</p>
<li>Automatic identification of requestor</li>
<li>Reduce data entry</li>
<li>Validation of dates, specifically the automatic calculation of days absent (excluding weekends)</li>
<li>Mr Burns is not the only approver, we will need the workflow to route the leave approval to the appropriate supervisor</li>
<li>We have a central leave calendar to update</li>
<p>Identification of Homer is now sorted, and we have taken steps both in the areas of reducing data entry and validating the dates (excluding days absent). So, we are tracking nicely and haven&#8217;t fallen behind schedule just yet <img src='http://sharepointmagazine.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>Before we continue with addressing all of these requirements, we will have to take a bit of a detour as I explain below.</p>
<h2>Too good to be true?</h2>
<p>Here&#8217;s a little experiment for you to try. On the above form, published in its current form with deliberately invalid dates (highlighted in red), you will see a toolbar that has a &#8220;Save&#8221;, &#8220;Save As&#8221;, &#8220;Close&#8221; and &#8220;Print View&#8221; on it. I clicked the Save As button and was dutifully prompted for a filename. I called the form &#8220;<strong>Homer&#8217;s Test Form</strong>&#8221; as shown below and clicked Save</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image20.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb20.png" border="0" alt="image" width="343" height="229" /></a></p>
<p>I then closed the form and checked out the form library on the <a href="http://radioactivenet" onclick="javascript:pageTracker._trackPageview('/radioactivenet');">http://radioactivenet</a> site. What the&#8230;! It saved it! What&#8217;s the point of data validation if you can just save the form anyway?</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/10/image21.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/10/image-thumb21.png" border="0" alt="image" width="565" height="149" /></a></p>
<p>The answer to that question, my friends, is there is a difference between saving a form and <strong>submitting</strong> a form. But you will have to wait for part 7 of this series for that riveting discussion!</p>
<p>Thanks for reading</p>
<p>Paul Culmsee</p>
<p><a href="http://www.cleverworkarounds.com" onclick="javascript:pageTracker._trackPageview('/www.cleverworkarounds.com');">www.cleverworkarounds.com</a></p>
<p><a href="http://www.sevensigma.com.au" onclick="javascript:pageTracker._trackPageview('/www.sevensigma.com.au');">www.sevensigma.com.au</a></p>
<p><h3>This article was posted on:</h3>
<a href="http://sharepointmagazine.net" ><img src="http://sharepointmagazine.net/images/logo2.gif" border="0"/></a></p>
<p><a href="http://sharepointmagazine.net/technical/a-tribute-to-the-humble-leave-form-part-6" >A tribute to the humble leave form - part 6</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SharepointMagazine?a=DYiLn"><img src="http://feeds.feedburner.com/~f/SharepointMagazine?i=DYiLn" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SharepointMagazine/~4/468255566" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sharepointmagazine.net/technical/a-tribute-to-the-humble-leave-form-part-6/feed</wfw:commentRss>
		<feedburner:origLink>http://sharepointmagazine.net/technical/a-tribute-to-the-humble-leave-form-part-6</feedburner:origLink></item>
		<item>
		<title>Everything You Need to Know about BDC: Part 2 of 8</title>
		<link>http://feeds.feedburner.com/~r/SharepointMagazine/~3/467113478/everything-you-need-to-know-about-bdc-part-2-of-8</link>
		<comments>http://sharepointmagazine.net/technical/administration/everything-you-need-to-know-about-bdc-part-2-of-8#comments</comments>
		<pubDate>Wed, 26 Nov 2008 06:39:32 +0000</pubDate>
		<dc:creator>Randy Williams</dc:creator>
		
		<category><![CDATA[Administration]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[Technical]]></category>

		<category><![CDATA[adf]]></category>

		<category><![CDATA[application]]></category>

		<category><![CDATA[BDC]]></category>

		<category><![CDATA[Business Data Catalog]]></category>

		<category><![CDATA[Business Intelligence]]></category>

		<category><![CDATA[definition]]></category>

		<category><![CDATA[file]]></category>

		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=1532</guid>
		<description><![CDATA[In this article, the emphasis will be on the Application Definition File (or ADF).  We’ll make sure you have a good understanding of the role it plays, how it works, and a give you a good overview of the XML schema that is used.]]></description>
			<content:encoded><![CDATA[<p>Welcome back.  This is part two of an eight part series on BDC.  In the first article, I gave you an overview of the BDC from a business standpoint and introduced its architecture.  In this article, the emphasis will be on the Application Definition File (or ADF).  We’ll make sure you have a good understanding of the role it plays, how it works, and a give you a good overview of the XML schema that is used.  We’ll then look at various ways you can create these ADFs, show you how to publish them into your farm, and also cover how security on the ADF is managed.  We have a lot to cover, so let’s get started.</p>
<h4>ADF Overview</h4>
<p>Since we understand the BDC to be a middle man between the user interface and some back-end system, we need some way of mapping how the back end system is structured.  This mapping can then be consumed from the various interfaces such as Web Parts and searching that we covered in the last article.  Since BDC is designed to pull data from virtually any relational database or SOAP-based Web Service, you’d correctly guess that the ADF must be flexible and generic in nature.  As mentioned already, the ADF is an XML file with a specific schema and its concept can be likened to a logical database diagram.  By logical, I mean that it does not have any vendor-specific features such as data types.  Keep in mind that it must also be flexible enough to connect to Web Services as well, so it can’t be too database-centric as well.</p>
<p>XML makes good sense for the definition as it is a declarative way to define the back-end in a generic way.  By being declarative, and not done programmatically through code, it helps ensure that we have a loosely-coupled design.  This is very important as front-ends and back-ends are likely to change, and we want to make sure the maintenance effort spent on this middle layer is minimized.  As we’ll see later, having it XML based also makes it easier to automatically generate this definition.</p>
<p>In Figure 1 below, you can see a conceptual overview of how the ADF is used.  The browser makes a regular request where BDC data is needed (e.g. a BDC Web Part, Search, etc.).  The MOSS web front end receives the request, and as part of its processing, hands the BDC request off to the Object Model. The Object Model (also known as the API or Application Programming Interface) gets the definition for this ADF from its catalog.  With the details on the ADF known, the Object Model requests the data from the database or Web Service.  The response is returned and then formatted as appropriate for delivery back to the browser.</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/11/image7.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/11/image-thumb1.png" border="0" alt="image" width="280" height="322" /></a><br />
<strong>Figure 1: Data flow overview with BDC</strong></p>
<p>To best understand the ADF, it helps to have an understanding of some of the terminology used.  This will relate directly to structures found in the XML definition.  Those with a database background (and also those developers with knowledge of ADO.NET) should pick these concepts up right away.</p>
<p><strong>Line of Business</strong>.  Line of business (or LOB) is just a term that refers to a back-end system.  As you’ll see shortly, a single ADF is comprised of one or more LOB instances.</p>
<p><strong>Entity</strong>.  An entity works like a table.  The entity term is also used when designing a logical database diagram, and the concept is the same.</p>
<p><strong>Method</strong>.  A method is how we request data (or query) from an entity.  For a database, it is usually a SQL select statement or stored procedure.  For a Web Service, it would be a Web Method.  Each entity supports multiple methods.</p>
<p><strong>Parameter</strong>.  Parameters are the inputs and outputs to a method.  Each parameter has a name and a .NET data type (e.g. System.Int32 or System.String).</p>
<p><strong>Filter Descriptor</strong>.  Filter descriptors provide an easy way for users to filter records (rows) found in an entity.  It is mostly commonly used with the Business Data List Web Part.  For example, you might want to allow users to quickly find a company by its name.</p>
<p><strong>Association</strong>.  Associations are how relationships are represented.  For example, an Employee entity might have an association with a VacationRequest entity.  For a database, these are normally used on child tables that have a foreign key.</p>
<p><strong>Action</strong>. Actions are used with entities and allow you to link to external applications or custom SharePoint pages for additional processing.  These are commonly used in write-back situations, and we will look closer at these in the final article in this series.</p>
<h4>The ADF Schema</h4>
<p>Now that you have a pretty good idea of what the ADF does and some of the vocabulary, let’s go ahead and examine the XML Schema for an ADF.  (Note: this is not intended to be a detailed discussion; for a deeper look, please consult the MOSS SDK (Software Development Kit) here: <a title="http://msdn.microsoft.com/en-us/library/ms563661.aspx" href="http://msdn.microsoft.com/en-us/library/ms563661.aspx" onclick="javascript:pageTracker._trackPageview('/msdn.microsoft.com');">http://msdn.microsoft.com/en-us/library/ms563661.aspx</a>.)  One of the screen shots from this SDK is very helpful in understanding the high-level hierarchy of the ADF.  You can see it here:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/11/image8.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/11/image-thumb2.png" border="0" alt="image" width="520" height="313" /></a><br />
<strong>Figure 2: ADF Schema Overview</strong></p>
<p>LobSystem is the root element in the ADF file.  It contains attributes to the required namespaces, specifies whether it is a Web Service or Database, and sets the Name of the ADF.</p>
<p>LobSystemInstance is where you define your connection in the ADF.  Even though the XML schema looks like it supports multiple connections, you can only have a single connection defined in your ADF.  Through Property child elements, you define the connection string to this data source.  Those with ADO.NET experience will quickly recognize this example below as a Windows-integrated login to a SQL Server.</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/11/image35.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/11/image35-thumb.png" border="0" alt="image" width="554" height="120" /></a><br />
<strong>Figure 3: LobSystemInstance</strong></p>
<p>The details of authentication is a complex subject, and we’ll just cover the basics here.  When connecting, you have four options when it comes to authentication.</p>
<p>1) <strong>PassThrough</strong>.  PassThrough can be used to authenticate the user in one of two ways, using Windows credentials or database credentials. With Windows (shown in Figure 3 above), the client&#8217;s Windows credentials are forwarded to the back end system.  This can be used for both databases and Web Services.  The problem with this, however, is that unless you&#8217;re using Kerberos (or your Web Service/database server is on the same physical machine as your SharePoint web front end), this will fail.  This is due to Windows NT Lan Manager&#8217;s (NTLM) inablility to delegate.  With database credentials, you use a database-specific username and password to log in.  This can only be used against a database server, not a Web Service.</p>
<p>2) <strong>RevertToSelf</strong>. This means the credentials of the Application pool is used to authenticate the user.  This will solve the the delegation problem from above, but all users will effectively use the same login on the back end.</p>
<p>3) <strong>WindowsCredentials/RDBCredentials</strong>.  These are used in conjunction with Single Sign On (SSO).  In this model, the user’s credentials (either a Windows login or a database-specific login) for the external system are pulled from the SSO database.</p>
<p>4) <strong>Credentials</strong>.  This is only used if you are connecting to a Web Service and cannot use Windows authentication.</p>
<p>For more details on authentication, I recommend you start your reading here:  <a title="http://msdn.microsoft.com/en-us/library/ms566523.aspx" href="http://msdn.microsoft.com/en-us/library/ms566523.aspx" onclick="javascript:pageTracker._trackPageview('/msdn.microsoft.com');">http://msdn.microsoft.com/en-us/library/ms566523.aspx</a>.</p>
<p>Within LobSystemInstance, each entity for this connection is defined.  The entity itself is not very interesting as it just defines a friendly name by which users will reference it.  Within each entity, you define an identifier and methods.  An identifier is the primary key, or the column(s) from the entity that can be used to uniquely identify each row.  These are very important as they are used in a number of ways.  Often, these are ID columns, such as CustomerID as shown here.</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/11/image41.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/11/image41-thumb.png" border="0" alt="image" width="359" height="42" /></a><br />
<strong>Figure 4: Identifier</strong></p>
<p>Also part of each entity are the methods.  These are really the heart of the ADF as it defines the actual data that will be pulled.  It is where you specify a select statement (e.g. <em>select * from table</em>), a stored procedure, or a Web Method if it’s a Web Service.  Since there may be multiple ways to query data from an entity, you can have multiple methods.  Here is a simple example with returning a few columns from a table named Customers.</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/11/image49.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/11/image49-thumb.png" border="0" alt="image" width="489" height="100" /></a><br />
<strong>Figure 5: Method</strong></p>
<p>Within a method, you may want to define one or more ways in which this method can be filtered by users.  This is used within the BDC Web Parts.  For example, for the list of customers above, imagine your company has hundreds of them.  How will your users easily find the one they are looking for?  Start by asking yourself what are the common ways they might want to lookup a customer—perhaps by Name, by Region, or by a Contact Name.  If this makes sense then you understand FilterDescriptors.  Here is a simple look at two FilterDescriptor entries that have been made.  The Name attribute you see here defines the friendly name that users will work with, so make sure this name makes sense to them.</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/11/image55.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/11/image55-thumb.png" border="0" alt="image" width="367" height="59" /></a><br />
<strong>Figure 6: FilterDescriptor</strong></p>
<p>Now that you understand filtering, let’s go back to methods for a bit.  In the ADF, there are different types of methods, and the three primary types we work with are Finder, SpecificFinder and IdEnumerator.  Finder methods are used when you want to return one or more rows from an entity.  For example, find all customers who are in the North America region.  SpecificFinder is used to find a single row and is used in conjunction with the Identifier mentioned above. For example, find me the one Customer that has CustomerID = 42.  IdEnumerator is used to return the identifier value for each row.  In code terms, this would look something like <em>Select CustomerID from Customers</em>.  The BDC uses this when crawling for Enterprise Search integration.  You will find each method type defined within a MethodInstance.</p>
<p>Let’s move on to Parameters.  Parameters allow you to describe the exact input and output for methods.  Input parameters (Direction = “In”) are used with Filter Descriptors.  There are different types of output parameters, but the most common are Return parameters (Direction = “Return”).  These are used to describe each column that is returned from a method.  For each parameter, you define the friendly name and its .NET-matching data type.  In Figure 7 below, we see the two parameters that are defined for our two FilterDescriptors above.  These are input parameters as shown here:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/11/image61.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/11/image61-thumb.png" border="0" alt="image" width="534" height="213" /></a><br />
<strong>Figure 7: Parameter</strong></p>
<p>Last but not least, let’s cover Associations.  We use Associations to define the actual relationships that exist in the external system.  BDC can directly work with one-to-one and one-to-many types of relationships.  When you define an Assocation, you define the SourceEntity (i.e., the parent or primary) and the DestinationEntity (i.e., the child or foreign).  You also must point to a method in the child entity that returns all the child rows based on a single parent row.  This method will usually “join” these two tables together.  In SQL terms, it would be something like</p>
<p><em>Select * from Orders<br />
join Customers on Orders.CustomerID = Customers.CustomerID<br />
where Orders.CustomerID = 42</em></p>
<p>Here is an example on how an Association is defined in the ADF:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/11/image68.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/11/image68-thumb.png" border="0" alt="image" width="704" height="74" /></a><br />
<strong>Figure 8: Association</strong></p>
<p><strong></strong></p>
<h4></h4>
<h4>Creating ADFs</h4>
<p>In the small snippets above, you can probably see that the XML syntax won’t likely roll off your fingertips.  It takes time and practice to get good at writing them.  These can be created in any text or XML editor, including Visual Studio.  If you will be using Visual Studio, I recommend you import the BDCMetaData.xsd schema file so at least you get IntelliSense.  You can follow the guidance on how to set this up from SharePoint MVP Andrew Connell <a href="http://www.andrewconnell.com/blog/archive/2006/10/20/4944.aspx" onclick="javascript:pageTracker._trackPageview('/www.andrewconnell.com');">here</a>.</p>
<p>Fortunately, there are tools out there that can reverse engineer the database (or Web Service) and generate most if not all of the ADF file for you. Even if you only have to write one ADF, these tools may be worth it.  The three main ones available to you are</p>
<ul>
<li>BDC Definition Editor</li>
<li>MOSS BDC Design Studio</li>
<li>BDCMetaMan</li>
</ul>
<p>BDC Definition Editor is free and comes from Microsoft.  You can install it after you install the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=6D94E307-67D9-41AC-B2D6-0074D6286FA9" onclick="javascript:pageTracker._trackPageview('/www.microsoft.com');">MOSS SDK</a>.  Sadly, with this tool, you get what you pay for.  It doesn’t generate Finder methods, crashes quite a lot, and requires you to install SQL Server 2005 Express (even if you have a full SQL Server instance installed).  It’s certainly better than nothing but not recommended for regular use.</p>
<p><a href="http://www.simego.net/MOSS_BDC_Design_Studio.aspx" onclick="javascript:pageTracker._trackPageview('/www.simego.net');">MOSS BDC Design Studio</a> is a commercial product from Simego.  The latest version 2.0 has a nice wizard interface when setting up each entity.  It can be used to generate ADFs on common databases like SQL Server and Oracle as well as Web Services. It is reasonably priced at $200 for a single license.</p>
<p><a href="http://www.lightningtools.com/bdc-meta-man/default.aspx" onclick="javascript:pageTracker._trackPageview('/www.lightningtools.com');">BDCMetaMan</a> from Lightning Tools is the top-of-the-line and de-facto standard for generating ADFs.  It is well written and fully featured.  It is also the most expensive at $1200 per license but well worth it if you use it enough.</p>
<h4>Loading the ADF into MOSS</h4>
<p>Once your ADF file has been generated, it needs to be loaded into your SharePoint environment.  This is done through your Shared Services Provider (SSP).  To get there from Central Administration, click on your SSP name in the Quick Launch menu on the left, then click Import application definition in the Business Data Catalog section.  Loading it is as simple as browsing to the file and clicking the Import button.  When you upload the ADF, it will validate the XML file. It will then create entries in your SSP Database for each LobSystemInstance and Entity.</p>
<p>Once the ADF is loaded, you might want to take a look at its structure.  Just click on View applications from the main SSP screen, and then navigate down through your named ADF and into each entity.  With the exception of custom actions, everything else is read only, so you can’t really make any changes.</p>
<h4>Setting Permissions</h4>
<p>When you’re done poking around, you’ll probably want to set permissions on your new definition.  Permissions apply to these levels in the ADF hierarchy: LobSystem (the whole ADF), Entity, Method and MethodInstance.  This means you can secure at a high level such as each ADF, or very granularly such as each Method within an Entity.  Unfortunately, the administration GUI only lets you set permissions down to the Entity level, so this is the lowest level that most people work with. You can also set permissions at a higher level (even the whole BDC) and copy these down to lower levels.  When setting permissions, you have four permissions to choose from.  Each is introduced here:</p>
<ul>
<li><strong>Edit</strong>.  This permission allows you to delete or add new ADFs into BDC.  You would grant this to those who would be uploading new ADFs into your SSP.</li>
<li><strong>Execute</strong>.  This allows you to execute Method Instances.  If you apply this permission at the entity level, it applies to all methods and method instances for this entity.</li>
<li><strong>Select in Clients</strong>.  This defines whether you can see the entity when configuring BDC Web Parts or adding a BDC column to a list.</li>
<li><strong>Set Permissions</strong>.  This allows you to change permissions for other users at the various levels as described in this section.</li>
</ul>
<p>That said, the common approach is to give users both the Execute and Select in Clients permission for all entities that they will be working with.  As standard with SharePoint, you can assign permissions to Users or Groups.</p>
<p>With that, we bring this Part Two article to a close.  By now, you should have a solid understanding of how BDC works and how to create, load and secure your ADF entities.  In the next session, we’ll focus more on creating ADFs for Web Service systems.  From there, we’ll then move over to the UI and how to leverage the value that these ADF entries give you.</p>
<p><h3>This article was posted on:</h3>
<a href="http://sharepointmagazine.net" ><img src="http://sharepointmagazine.net/images/logo2.gif" border="0"/></a></p>
<p><a href="http://sharepointmagazine.net/technical/administration/everything-you-need-to-know-about-bdc-part-2-of-8" >Everything You Need to Know about BDC: Part 2 of 8</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SharepointMagazine?a=fs0Cn"><img src="http://feeds.feedburner.com/~f/SharepointMagazine?i=fs0Cn" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SharepointMagazine/~4/467113478" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sharepointmagazine.net/technical/administration/everything-you-need-to-know-about-bdc-part-2-of-8/feed</wfw:commentRss>
		<feedburner:origLink>http://sharepointmagazine.net/technical/administration/everything-you-need-to-know-about-bdc-part-2-of-8</feedburner:origLink></item>
		<item>
		<title>SharePoint Magazine talks to Mike Walsh about his new book</title>
		<link>http://feeds.feedburner.com/~r/SharepointMagazine/~3/464005131/sharepoint-magazine-talks-to-mike-walsh-about-his-new-book</link>
		<comments>http://sharepointmagazine.net/people/sharepoint-magazine-talks-to-mike-walsh-about-his-new-book#comments</comments>
		<pubDate>Mon, 24 Nov 2008 15:36:49 +0000</pubDate>
		<dc:creator>Arno Nel</dc:creator>
		
		<category><![CDATA[Interviews]]></category>

		<category><![CDATA[People]]></category>

		<category><![CDATA[2007]]></category>

		<category><![CDATA[24]]></category>

		<category><![CDATA[book]]></category>

		<category><![CDATA[hours]]></category>

		<category><![CDATA[mike]]></category>

		<category><![CDATA[sharepoint]]></category>

		<category><![CDATA[walsh]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=1952</guid>
		<description><![CDATA[SharePoint Magazine talks to Mike Walsh about his new book ]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="Comment" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="" width="48" height="48" />Mike, you&#8217;ve been a SharePoint MVP for a long time. Why haven&#8217;t you written a book before?</p>
<blockquote><p><img class="alignnone" title="Answer" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />There are a couple of reasons. Firstly I never thought of it and secondly no one asked me - at least not until fairly recently. As you probably know I was one of the MVPs who combined to write a book for Wrox (Real World SharePoint 2007) but that came about because another MVP had put the idea of such a book to Wrox and he&#8217;d then asked for volunteers to write a chapter each on something they felt happy about writing about. So I wrote the introduction!<br />
After that I was asked a couple of times to comment on book submissions by other people so it finally got into my head that you didn&#8217;t actually have to wait to be asked but that you could think of a title and a set of chapters and then suggest such a book to a publisher. I didn&#8217;t of course.<br />
Then I was asked a couple of times, but once it was a very general &#8220;please let us know if you have an idea for a book&#8221; and the other time it was an offer to be a co-author of a book about an aspect of SharePoint I didn&#8217;t know much about, so that didn&#8217;t seem in the end to be a particularly good idea either.<br />
But then I was offered the Teach Yourself book and that not only was a ready-made subject area but one (WSS 3.0) I thought I knew enough about to be able to write a whole book about.</p></blockquote>
<p><img class="alignnone" title="Comment" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="" width="48" height="48" />So you just started writing?</p>
<blockquote><p><img class="alignnone" title="Answer" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />No actually my first reaction was to say that we were a bit late in the production cycle of the SharePoint v3 products so shouldn&#8217;t we put it off until v4 &#8230; but I was told (probably correctly as you may have noticed that books are now being written timed to come out up to six months after mine) that there still was a market for a good book.<br />
So I decided that if the book is going to come out later than quite a lot of others, it had better include lots of things which weren&#8217;t available to those earlier writers. So it&#8217;s based on Service Pack 1 code; has an appendix on installing WSS 3.0 in Windows Server 2008 (moved later with the other appendices to the book&#8217;s web site); and includes things like Search Server 2008; the &#8220;Fantastic 40&#8243; templates and various web parts and so on that weren&#8217;t available at the release of WSS 3.0.<br />
Anyway I&#8217;m getting ahead of myself. Even if I had been invited to write the book, the first task I had was still to provide chapter titles so that they could have some hope that the book would both match the aims of the series and also be written. As the title is &#8220;in 24 Hours&#8221; that meant writing the titles of 24 chapters. I would imagine that about half of those have survived in the final book because it&#8217;s only when you are writing that you notice that you need more (usually you need more) space than one ca. 20 page chapter gives you so you need two or even three (and less often you notice that you don&#8217;t really have enough to talk about of any value to fill a full chapter so you maybe combine two into one).<br />
After that set of chapter titles was approved, contracts were exchanged where I would hand over 6 chapters by date X; the next 6 by date Y etc. These were tough deadlines but I made them!</p></blockquote>
<p><img class="alignnone" title="Comment" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="" width="48" height="48" />Tell us something about writing the book and what is in it.</p>
<blockquote><p><img class="alignnone" title="Answer" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />Many SharePoint books are written by two or more people and I suspect that means that they are writing chapters at the same time and need to be aware of what the other person has written.<br />
Because I was the sole author I was able to write the book entirely in the order it appears in the printed version. So it starts with an introduction chapter (completely different to the Wrox chapter I&#8217;d written a year earlier); goes on to install the product and then spends roughly a third of the book using that installation to go into basic usage and administration before closing that section of the book with a real-life example of how you would put together the bits and pieces the reader has learned so far.<br />
I spent a lot of time thinking about which real-life solution I should pick and in the end decided that most people have at one time or another watched a TV show about a major crime investigation, so I&#8217;d use that. It means I don&#8217;t have to explain the background yet it gives the opportunity to use all kinds of lists and libraries and also have different sites and different access rights.<br />
I&#8217;m quite happy with the result. It gives, I hope, a clear picture of the sort of things you need to think about when creating SharePoint sites for any kind of a customer or private requirement.<br />
The next set of chapters is about the interaction of Office and WSS 3.0. There I&#8217;ve made a point of not assuming - as the Microsoft books often seem to do - that people will be using Office 2007 but also show the interaction with the equivalent Office 2003 products.<br />
The only exception to that is Access 2007 (and not Access 2003) because I&#8217;d earlier noticed that although Microsoft expects people to use that for reports of SharePoint lists, nobody seems to have written about it much. So I have one chapter where I show how Access 2007 (and OneNote 2007 - something which also doesn&#8217;t seem to be covered elsewhere) work with WSS 3.0 but I also have a second chapter where I show how to create reports from both single WSS 3.0 lists (using a wizard) and from multi WSS 3.0 lists (NOT using a wizard!).<br />
I have a couple of chapters on Search Server 2008 both installing and then using it on top of WSS 3.0. That  includes how you can amend the standard WSS 3.0 search box so that it becomes a Search Server 2008 Advanced search box.<br />
Then I have a couple of chapters on workflow. The first looks at the different kinds of workflows you can have in connection with the SharePoint v3 products before going on to specifically create a standard WSS 3.0 workflow and the second then looks in detail at a SharePoint Designer 2007 workflow.<br />
I then have a couple of more SPD 2007 related chapters - one about creating DataView web parts and the next as part of a chapter on how the end-user and site (rather than system) administrator can make safety copies of his data. This includes backup/Restore information but before that mentions simpler methods such as &#8220;Save List as Template&#8221;.<br />
Finally there are some chapters on using ready-made templates ; on using language packs and on using third-party web parts (both free and commercial).</p></blockquote>
<p><img class="alignnone" title="Comment" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="" width="48" height="48" />It seems to cover a lot of ground. Is there anything you don&#8217;t write about?</p>
<blockquote><p><img class="alignnone" title="Answer" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />There&#8217;s nothing in the book about developing own code. For that I recommend one of the many developer books out there.<br />
This is a book about using what Microsoft provide - either in the product itself or in combination with other &#8220;free products&#8221; (Search Server 2008 Express; application templates; language packs, web parts) or with SharePoint Designer 2007 or Office 2003/2007.<br />
The other thing you may have noticed above is that the SPD 2007 chapters don&#8217;t include a chapter on amending the look and feel of your site. I couldn&#8217;t do justification to that in a single chapter and there are any specialist books on SPD 2007 that people should read if they are planning to change the look of their site(s) so radically that they need advice on how to do it. Instead I concentrate if you like on the technical areas of SPD 2007 usage.</p></blockquote>
<p><img class="alignnone" title="Comment" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="" width="48" height="48" />Your book is less than 500 pages long, how did you fit this breadth of content in it?</p>
<blockquote><p><img class="alignnone" title="Answer" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />A: It all comes down to writing style and assumptions made about your readers. I assumed that my readers would prefer to be given introductions into the whole range of options for a WSS 3.0 installation rather than being spoon-fed a massive amount of detail on a limited range of subjects.<br />
So, for instance, when I work through Lists and Libraries, I use in my examples only the few different field types I mostly use rather than going into details about every single field type. This means that the book retains its relevance to real life and keeps moving forward (and I hope retains the interest of its readers rather than boring them with too much detail - they can investigate the other field types by themselves later).<br />
Another thing I try to do is to not over-complicate the examples so I don&#8217;t need to spend time explaining the aim of the example. This doesn&#8217;t mean that the examples aren&#8217;t representative of real-life needs but it does mean that for instance the Access reports I create are built using a couple of easily-understandable lists.</p></blockquote>
<p><img class="alignnone" title="Comment" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="" width="48" height="48" />Is there anything you are particularly proud of in the book?</p>
<blockquote><p><img class="alignnone" title="Answer" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />I&#8217;m actually proud of a part of a chapter that has been moved to the web site because it was regarded as being a bit beyond the scope of the book.<br />
When you write about SPD 2007 Data View Web parts, it&#8217;s very easy to just show the sunny side and quickly knock off a web part where for instance a field is in red if sales are too low. So, while I have that show-off stuff too, when I wrote the chapter on Data View web parts I started off with a list of requirements that I thought a typical boss would demand.<br />
As I started working through those requirements, everything went smoothly until I found that, using the user interface, it was impossible to solve one of them. Instead it would be necessary to write code.<br />
Now what I could have done would have been to go back in the chapter and simply remove that requirement. Yet - and this is what I am proud of - despite a rapidly-approaching time-limit, I spent the next couple of days learning more than I wanted to about XSLT and XPath and finally with the help of a fellow SharePoint MVP found the exact code I needed to solve that requirement too.<br />
So now people reading the book will first see a seemingly reasonable list of requirements; see how to solve most of them quickly and easily and yet will be aware that not everything that looks easy to solve is and that if they get a request from their boss they should build in an extra couple of days just in case.<br />
The printed chapter in the final version satisfies most of the requirements (and ends with that warning!). The final requirement from the list of requirements is then covered in a page on the book&#8217;s web site that carries on where the written chapter leaves off.</p></blockquote>
<p><img class="alignnone" title="Comment" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/comment_481.png" alt="" width="48" height="48" />Finally, Mike, the book title says &#8220;SharePoint 2007: Using Windows SharePoint Services 3.0&#8243;. Throughout this interview you&#8217;ve been talking about WSS 3.0. Should people using or planning to use MOSS 2007 not bother reading your book?</p>
<blockquote><p><img class="alignnone" title="Answer" src="http://sharepointmagazine.net/wp-content/uploads/2008/07/user_481.png" alt="" width="48" height="48" />It IS a book about WSS 3.0 but at the same time I&#8217;ve always thought that anyone who will be using MOSS is well advised to learn about the basics by running WSS 3.0. I&#8217;ve thought that for many years so it&#8217;s nothing new that I&#8217;ve just put in to sell more copies of the book - I really do think that is the best approach. MOSS itself includes so much functionality it must be terribly difficult to learn SharePoint on a MOSS system - far better to start on WSS 3.0 and then work your way up.<br />
So, yes, people new to the SharePoint products can certainly gain benefit from the book even if they later are involved with MOSS-based sites. As you know, virtually everything you can do in a WSS 3.0 system can be done in a MOSS system in just the same way, so there&#8217;s very little knowledge gained from reading the book that will be lost on moving to MOSS - mainly just the installation details in fact.<br />
The other thing is that almost all the new (and possibly unique) content in the second half of the book both applies to MOSS and also might well be new to existing MOSS users. To take one example I&#8217;ve not mentioned before, the built-in Blog system is the same in both WSS 3.0 and MOSS 2007 and isn&#8217;t particularly good. So I&#8217;ve described in the book how to install and use the &#8220;Extended Blog Edition&#8221; which is part of the free Community SharePoint Kit.</p></blockquote>
<p><h3>This article was posted on:</h3>
<a href="http://sharepointmagazine.net" ><img src="http://sharepointmagazine.net/images/logo2.gif" border="0"/></a></p>
<p><a href="http://sharepointmagazine.net/people/sharepoint-magazine-talks-to-mike-walsh-about-his-new-book" >SharePoint Magazine talks to Mike Walsh about his new book</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SharepointMagazine?a=iQ4Hn"><img src="http://feeds.feedburner.com/~f/SharepointMagazine?i=iQ4Hn" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SharepointMagazine/~4/464005131" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sharepointmagazine.net/people/sharepoint-magazine-talks-to-mike-walsh-about-his-new-book/feed</wfw:commentRss>
		<feedburner:origLink>http://sharepointmagazine.net/people/sharepoint-magazine-talks-to-mike-walsh-about-his-new-book</feedburner:origLink></item>
		<item>
		<title>Everything You Need to Know about BDC: Part 1 of 8</title>
		<link>http://feeds.feedburner.com/~r/SharepointMagazine/~3/455831988/everything-you-need-to-know-about-bdc-part-1-of-8</link>
		<comments>http://sharepointmagazine.net/technical/administration/everything-you-need-to-know-about-bdc-part-1-of-8#comments</comments>
		<pubDate>Sun, 16 Nov 2008 19:55:39 +0000</pubDate>
		<dc:creator>Randy Williams</dc:creator>
		
		<category><![CDATA[Administration]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[Technical]]></category>

		<category><![CDATA[BDC]]></category>

		<category><![CDATA[Business Data Catalog]]></category>

		<category><![CDATA[Business Intelligence]]></category>

		<category><![CDATA[MOSS]]></category>

		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=1647</guid>
		<description><![CDATA[Welcome to the first of an eight part series on the Business Data Catalog (BDC).  While BDC is an enormously powerful tool, it’s also fairly complex and not well understood.  This series is considered technical in nature and intended for SharePoint installers, administrators or developers.  ]]></description>
			<content:encoded><![CDATA[<p>Welcome to the first of an eight part series on the Business Data Catalog (BDC).  While BDC is an enormously powerful tool, it’s also fairly complex and not well understood.  This series is considered technical in nature and intended for SharePoint installers, administrators or developers.  We’ll walk you through the BDC step-by-step, so no prior knowledge of BDC is expected, but you should already have a basic understanding of SharePoint.  For those that have some knowledge of BDC, this series will certainly will fill in the gaps to ensure you know everything you need to know.</p>
<p>We have three goals for this series:  1) Give you a strong understanding of what BDC is and how it works; 2) Ensure you recognize the value it brings organizations; 3) Provide you with the technical know-how to set it up and use its many features.</p>
<h4>BDC Overview</h4>
<p>As you already know, Microsoft Office SharePoint Server (MOSS) provides tremendous value as an intranet solution. One of the ways it excels is that it provides a single access point for the data assets in your organization. In many cases, these assets are stored in a Word doc, a PDF, an Excel workbook, etc.  In other words, it’s just a file. We call these sources unstructured data due to their flexibility in storing almost endless forms of information. It’s this flexibility that has made MS Office such a popular software suite. Users can work in a rich client application and then simply save the file, presumably into a document library.</p>
<p>This is where the power of MOSS as a document management system comes in. When coupled with an enterprise search engine, it’s even greater. Despite the unstructured nature of these files, users can go into their portal and by either a few navigation clicks or a quick search, they can find the answers they need. Having this centralized location for answers yields not only productive employees, but happy ones. It may seem that users have the best of both worlds: the flexibility of storing data the way they want, and the ability to publish it knowing that other users can find it.</p>
<p>But hang on, it’s not quite this easy. Sometimes, structure is necessary. Structure imposes rules and order. Do we really want to store all our customer orders in a single Excel sheet? Structure helps ensure we have valid, manageable, and most importantly, trusted data. For these structured data needs, IT professionals have relied on the tried and true relational database, and many vendors such as Oracle, IBM and Microsoft have made a bundle selling their flavor of SQL.</p>
<p>With these relational database management systems, information is locked in server-side databases. You usually work with the data through a separate application, perhaps a rich client or a web-based interface. These structured databases are the lifeblood for critical systems such as accounting, CRM (Customer Relationship Management), ERP (Enterprise Resource Planning), and a myriad of other line-of-business needs.</p>
<p>In fact, these solutions have become so popular and easy to build, they have sprung up all over the organization into what I like to call database sprawl. Typically, each of these systems is another data island, disconnected from the others. In many cases, information is duplicated across these systems, causing chaos where order was expected. From the user’s standpoint, they can be perceived as very inflexible and frustrating: Where is the data I need?  How do I log into that system?  Once I’m logged in, how do I access it?  By the time each question is answered, precious time is lost.  Or worse, we give up and make decisions based on no data at all.</p>
<p>This yields an interesting dichotomy in the way we store data. On one end, we have the unstructured nature of MS Office; on the other, we have the structure provided by the relational database. Interestingly, both can result in chaos. What you’ll be pleased to know is that MOSS can also bring some order to the database sprawl as well, and it does so in a very similar way. <img src="http://sharepointmagazine.net/wp-content/uploads/2008/11/image6.png" border="0" alt="image" width="290" height="190" align="right" /></p>
<p>With Business Data Catalog, part of MOSS Enterprise, we again get directed us back to the SharePoint interface to get access to our data. With BDC, this structured data can be exposed through Web Parts; it can be indexed and searched; it can be merged with data found in lists. With BDC connections to your back-end systems, we can find and consume both structured and unstructured data assets that exist in our organization. And we do this from one location, one interface.</p>
<h4>Architectural Overview</h4>
<p>A holistic view of what BDC can do and how it works is best depicted in Figure 1.</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/11/image15.png" ><img src="http://sharepointmagazine.net/wp-content/uploads/2008/11/image-thumb9.png" border="0" alt="image" width="488" height="339" /></a><br />
<strong>Figure 1: BDC Architecture </strong></p>
<p>What you see along the top are the primary ways BDC can expose data from your back-end systems. Here is an overview of each of these from left to right:</p>
<p>1) BDC data can be surfaced using the many out-of-the-box Web Parts. This is the most common way and very easy for the users to search, filter and sort for information. You simply add one of the BDC Web Parts to any page, point it to one of the sources in the catalog and users are ready to go. All data is pulled in real-time using this approach.</p>
<p>2) SharePoint Lists allows you to merge data that lives in SharePoint along with data from a back-end system. For example, perhaps you have customer names stored within a list. From your CRM system, you would also like to see contact information for each customer. By adding a BDC field to your list, you can copy the corresponding data from your back-end system and store it within the list. Typically this matchup is done one-to-one. To ensure the copied data doesn’t get stale, users can refresh it on demand.</p>
<p>3) Search allows you to set up a content source and point it to an application in the BDC. SharePoint then goes through through BDC to crawl your structured data source and store the keywords in its index. Your search queries can now go across both structured and unstructured sources giving you a unified set of results.</p>
<p>4) User Profile Importer allows you to supplement attributes found in the User Profile store from external databases. This is important for many organizations as their Active Directory or LDAP directories are rarely populated with all user details. For example, how many IT administrators will actually fill in the birthday or skills attribute? Data like this is usually found in HR systems anyway.  Using BDC, these values can be pulled and matched up with the user, providing a complete set of accurate values.</p>
<p>5) With custom applications, you can avoid having to write another data layer for your new application. Instead of directly connecting to the system using ADO.NET or a Web Service, you can consume the data using the BDC Object Model. This gives you a more flexible, declarative style of talking to your back end.</p>
<p>With each of these approaches, you may have noticed that the concept is predominantly read-only in nature. This is similar to decision support systems.  That is, we usually use BDC to consume the data from these back end systems, but rarely write back to it. In the final article in this series, you’ll see how you can write to your back end system.</p>
<h4>A Quick Look at BDC in Action</h4>
<p>Let’s see how this works.  In this first example, we demonstrate the Business Data List Web Part (#1 from above).  This makes the finding and displaying of rows from a table very easy.  As you see here, we are finding all rows from the Customers table (perhaps from a CRM database) that contain the word “market” in the name.</p>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/11/image34.png" border="0" alt="image" width="719" height="224" /><br />
<strong>Figure 2: Business Data List Web Part</strong></p>
<p>In the second example, we see how users can search for both documents and BDC sources (#3 from above).  A search for Great Lakes has been issued, and we see both document and BDC Search Results listed together.  We’ll go into far more detail on these features and others as we get into other articles.</p>
<p><img src="http://sharepointmagazine.net/wp-content/uploads/2008/11/image1.png" border="0" alt="image" width="472" height="417" /><br />
<strong>Figure 3: BDC Search Results</strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<h4>How Does BDC Work</h4>
<p>Now that you have a better idea of what it can do, you’re probably wondering how does it work? As you can see, the BDC is a middle man between your interface and the back end. To provide this universal interface, it uses a database-like XML syntax that is called an Application Definition File or ADF. This ADF defines the connection, the entities (for a database, these are usually tables, views or stored procedures), how to filter, what associations <img src="http://sharepointmagazine.net/wp-content/uploads/2008/11/image5.png" border="0" alt="image" width="240" height="83" align="left" /> (relationships) exist and what user-friendly names should be used. These names can even be localized in different languages. This ADF is intended to be a generic interface describing the dictionary of information available. Once these ADF files are stored within the catalog, the first four options above are available without having to write any code. Of course, security is an important consideration when we talk about exposing sensitive data, so we’ll see how the BDC addresses this concern in the next article.</p>
<p>For the actual back end, as you can see in Figure 1 above, this can be any ADO.NET accessible database with an OLEDB or ODBC driver.  This covers most every database from MS Access and SQL Server to Oracle and IBM DB2. The back-end can also be a specially-written SOAP-based Web service.  The BDC is configured within a Shared Services Provider (SSP) which allows you to take advantage of BDC technology within any Web Applications within your SharePoint Farm.</p>
<h4>Series Outline</h4>
<p>With that, that nearly brings us to a close for this first article. But before we let you go, here is an outline on how we are structuring this series.  To get the full value, you should go through these in order, but we’ll try to keep them discrete so that you can jump around and focus on the ones that are most important to you. Note: these may slightly change as we go through each of these.</p>
<p><strong>Part 1</strong><strong><br />
</strong>In this first part, as you have now read, the focus is be on the concepts, the value it can bring organizations, the architecture, and an overview of each article in the series.</p>
<p><strong>Part 2</strong><strong><br />
</strong>This article will introduce the Application Definition File. By the end, you’ll understand the role it plays, how it works, and have a high-level grasp of its schema.  We’ll also introduce tools that allow you to generate these XML files.  Securing ADFs will also be covered in this article.</p>
<p><strong>Part 3</strong><strong><br />
</strong>This article will cover how the Web Services can be used instead of a direct connection to a database.  It will look at the kind of Web methods you’ll need to write if you want to expose your systems to BDC this way.</p>
<p><strong>Part 4</strong><strong><br />
</strong>This will be a two-part article.  In first half, we’ll look at the out of the box Web Parts that BDC provides.  These is the most common way that this structured data is presented to users, so we’ll give it a solid overview.  The second half will cover how you can cache BDC data into SharePoint lists.  This will allow you to marry SharePoint data and BDC together into one consolidated view.</p>
<p><strong>Part 5</strong><strong><br />
</strong>This article will cover everything you need to know to to configure Enterprise Search to crawl BDC data.  We’ll cover content sources, scopes, and how to configure MOSS for both full and incremental crawls of your structured data.</p>
<p><strong>Part 6</strong><strong><br />
</strong>As mentioned above, BDC can supplement properties contained within User Profiles. This allows you to pull critical data elements from external ERP or HR systems and map them to out-of-the-box or custom User Profile properties.  This article will cover everything you need to know to get this working for you.</p>
<p><strong>Part 7</strong><strong><br />
</strong>This article will apply mostly to the developers out there and will cover the BDC Object Model.  You’ll see how custom Web Parts, application pages or other custom-built SharePoint applications can consume BDC database without your having to write another data layer.</p>
<p><strong>Part 8</strong><strong><br />
</strong>In the final article, we will cover Custom Actions how these can be used to safely write changes to the back-end database or Web Service.  While not used often, this may prove to be a practical way for users to maintain some of the data in these external systems.</p>
<p><h3>This article was posted on:</h3>
<a href="http://sharepointmagazine.net" ><img src="http://sharepointmagazine.net/images/logo2.gif" border="0"/></a></p>
<p><a href="http://sharepointmagazine.net/technical/administration/everything-you-need-to-know-about-bdc-part-1-of-8" >Everything You Need to Know about BDC: Part 1 of 8</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SharepointMagazine?a=mfDLn"><img src="http://feeds.feedburner.com/~f/SharepointMagazine?i=mfDLn" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SharepointMagazine/~4/455831988" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sharepointmagazine.net/technical/administration/everything-you-need-to-know-about-bdc-part-1-of-8/feed</wfw:commentRss>
		<feedburner:origLink>http://sharepointmagazine.net/technical/administration/everything-you-need-to-know-about-bdc-part-1-of-8</feedburner:origLink></item>
		<item>
		<title>Customizing Search Series - Creating the Custom Results Page</title>
		<link>http://feeds.feedburner.com/~r/SharepointMagazine/~3/451621748/customizing-search-series-created-the-custom-results-page</link>
		<comments>http://sharepointmagazine.net/technical/development/customizing-search-series-created-the-custom-results-page#comments</comments>
		<pubDate>Thu, 13 Nov 2008 08:58:50 +0000</pubDate>
		<dc:creator>stevemann</dc:creator>
		
		<category><![CDATA[Customisation]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[Technical]]></category>

		<category><![CDATA[BDC]]></category>

		<category><![CDATA[box]]></category>

		<category><![CDATA[center]]></category>

		<category><![CDATA[customize]]></category>

		<category><![CDATA[fast]]></category>

		<category><![CDATA[MOSS]]></category>

		<category><![CDATA[results]]></category>

		<category><![CDATA[search]]></category>

		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=988</guid>
		<description><![CDATA[This is the fifth article within the Customizing Search Series. This article continues to build out the customization of search using a new content source based on the BDC. When we previously setup a custom scope, we left the target search page as the default. Now, we will create a new search results page for the client scope which will then be used to customize the actual rendering of the search results.]]></description>
			<content:encoded><![CDATA[<p>This is the fifth article within the Customizing Search Series. This article continues to build out the customization of search using a new content source based on the BDC. When we previously setup a custom scope, we left the target search page as the default. Now, we will create a new search results page for the client scope which will then be used to customize the actual rendering of the search results.</p>
<p><strong>Custom Search Page Creation</strong></p>
<p>The out-of-the-box Search Center actually contains both a Search Page and a Search Results page for All Sites and People. Therefore, to be consistent, we should also create a Search Page and Search Results Page for our new Clients scope.</p>
<p>First we will create the Search Page. Go to the Search Center site and select Create Page from the Site Actions menu:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-1.bmp" ><img class="alignnone size-medium wp-image-990" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-1.bmp" alt="" /></a></p>
<p>On the Create Page screen enter Clients for the Title of the page and the URL name. Select the Search Page layout and then click on Create:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-2.bmp" ><img class="alignnone size-medium wp-image-991" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-2.bmp" alt="" /></a></p>
<p>The new page will appear in Design mode. Edit the Search Box web part and enter &#8220;ClientResults.aspx&#8221; in the Target search results page URL setting (under Miscellaneous):</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-3.bmp" ><img class="alignnone size-medium wp-image-992" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-3.bmp" alt="" /></a></p>
<p>Click OK and Publish the page.</p>
<p><strong>Creating the Search Results Page</strong></p>
<p>The creation of the search results page is the same process. Go to the Search Center site and select Create Page from the Site Actions menu:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-4.bmp" ><img class="alignnone size-medium wp-image-993" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-4.bmp" alt="" /></a></p>
<p>On the Create Page screen enter Client Results as the Title of the page and ClientResults for URL name. Select the Search Results Page layout and then click on Create:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-5.bmp" ><img class="alignnone size-medium wp-image-994" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-5.bmp" alt="" /></a></p>
<p>The new page will appear in Design mode. Edit the Search Box web part and enter &#8220;ClientResults.aspx&#8221; in the Target search results page URL setting (under Miscellaneous):</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-6.bmp" ><img class="alignnone size-medium wp-image-995" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-6.bmp" alt="" /></a></p>
<p>Click OK and Publish the page.</p>
<p><strong> </strong></p>
<p><strong>Creating New Tabs</strong></p>
<p>Go back to the main Search Center again and Edit the Page. Click on Add Tab near the top:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-7-add-tab.bmp" ><img class="alignnone size-medium wp-image-996" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-7-add-tab.bmp" alt="" /></a></p>
<p>This will bring up a screen to add a new tab (for Search Pages). Enter Clients for the tab name and Clients.aspx as the page (remember this is for the search pages, the results are next):</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-8.bmp" ><img class="alignnone size-medium wp-image-997" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-8.bmp" alt="" /></a></p>
<p>Click Ok and publish the page.</p>
<p>Perform a search under the All Sites scope such that the results page appears. Edit this page and click on the Add New Tab towards the left of the screen:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-7-add-tab.bmp" ><img class="alignnone size-medium wp-image-996" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-7-add-tab.bmp" alt="" /></a></p>
<p>This will bring up a screen to add a new tab again but this time it will be for the Search Results Pages. Enter Clients for the tab name and ClientResults.aspx as the page:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-10.bmp" ><img class="alignnone size-medium wp-image-998" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-10.bmp" alt="" /></a></p>
<p>So now the Search Center should be loaded up with a Client Search Page, Client Search Results Page, and the appropriate tabs.</p>
<p><strong>Updating the Client Scope</strong></p>
<p>Now that we have the client results page created, we need to go back and update the scope such that any search within the client scope uses the proper results page. Therefore, back in Central Administration under the Search Settings, click on the View Scopes within the Scopes section:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-11.bmp" ><img class="alignnone size-medium wp-image-999" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-11.bmp" alt="" /></a></p>
<p>On the next screen, select the Clients scope to bring up the scope properties and then click on the Change Scope Settings link:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-12.bmp" ><img class="alignnone size-medium wp-image-1000" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-12.bmp" alt="" /></a></p>
<p>This will bring up the Edit Scope screen. Simply change the Target Results Page setting to the &#8220;Specify a different page for searching this scope&#8221; and enter &#8220;ClientResults.aspx&#8221; within the Target results page box:</p>
<p><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-13.bmp" ><img class="alignnone size-medium wp-image-989" src="http://sharepointmagazine.net/wp-content/uploads/2008/09/cr-13.bmp" alt="" /></a></p>
<p>Click OK. The scope will need to be updated but that happens automatically.</p>
<p><strong>What&#8217;s Next?</strong></p>
<p>We are coming down the home-stretch. Everything is now set-up for the customization of the search results. The final article will go into details in how we can use the managed properties and the results XSL to generate customized search results within our clients scope.</p>
<p><h3>This article was posted on:</h3>
<a href="http://sharepointmagazine.net" ><img src="http://sharepointmagazine.net/images/logo2.gif" border="0"/></a></p>
<p><a href="http://sharepointmagazine.net/technical/development/customizing-search-series-created-the-custom-results-page" >Customizing Search Series - Creating the Custom Results Page</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SharepointMagazine?a=CVbOn"><img src="http://feeds.feedburner.com/~f/SharepointMagazine?i=CVbOn" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SharepointMagazine/~4/451621748" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sharepointmagazine.net/technical/development/customizing-search-series-created-the-custom-results-page/feed</wfw:commentRss>
		<feedburner:origLink>http://sharepointmagazine.net/technical/development/customizing-search-series-created-the-custom-results-page</feedburner:origLink></item>
		<item>
		<title>Creating a SharePoint Web Part that hosts a data binding Silverlight application</title>
		<link>http://feeds.feedburner.com/~r/SharepointMagazine/~3/449398757/creating-a-sharepoint-web-part-that-hosts-a-data-binding-silverlight-application</link>
		<comments>http://sharepointmagazine.net/technical/development/creating-a-sharepoint-web-part-that-hosts-a-data-binding-silverlight-application#comments</comments>
		<pubDate>Tue, 11 Nov 2008 10:25:46 +0000</pubDate>
		<dc:creator>Karine Bosch</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Featured]]></category>

		<category><![CDATA[blueprint]]></category>

		<category><![CDATA[CreateChildControls]]></category>

		<category><![CDATA[HttpWebRequest]]></category>

		<category><![CDATA[linq]]></category>

		<category><![CDATA[sharepoint]]></category>

		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[UpdateListItems]]></category>

		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://sharepointmagazine.net/?p=1106</guid>
		<description><![CDATA[In the beginning of this year I started working on the Silverlight BluePrint for SharePoint together with my mentor Patrick Tisseghem who suddenly passed away. I dedicate this article to him.]]></description>
			<content:encoded><![CDATA[<div class="mceTemp mceIEcenter">In the beginning of this year I started working on the <strong>Silverlight BluePrint for SharePoint</strong> together with my mentor Patrick Tisseghem who suddenly passed away recently. I dedicate this article to him.</div>
<p>With Silverlight you can really light up your SharePoint user interfaces. It can be used in different SharePoint domains like web parts, application pages, navigation, content management, custom fields, editor parts, etc.</p>
<p>In this tutorial I&#8217;m going to explain how you can host a <strong>Silverlight 2 beta 2</strong> application from within a SharePoint Web Part. The Web Part will pass the URL of the SharePoint site together with the name of the list for which the Silverlight application will show the data. The retrieval of the data will be done by the Silverlight application using the <strong>HttpWebRequest</strong> technique for calling the <strong>SharePoint web services</strong>. As the SharePoint web services return a chunk of XML the XML will be handled by using <strong>LINQ for XML</strong>. The data will be bound to the Silverlight controls.</p>
<p>When the Web Part loads the complete list of AdventureWorks products will be loaded. In the Topic box you can enter a part of a product number and click the Search button. Based on that search string a restricted list of products will be returned. You can select  a product from the list to view its details.</p>
<div id="attachment_1126" class="wp-caption aligncenter" style="width: 510px"><a href="http://sharepointmagazine.net/wp-content/uploads/2008/09/adventure