<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Zieglers</title>
	<atom:link href="http://zieglers.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://zieglers.wordpress.com</link>
	<description>Just little about C#, .NET, SQL Server 2005, MOSS and SAP</description>
	<lastBuildDate>Mon, 23 Nov 2009 18:12:50 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='zieglers.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/ce5ac950ead3b3d50752d9e98fcaa6d2?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Zieglers</title>
		<link>http://zieglers.wordpress.com</link>
	</image>
			<item>
		<title>SharePoint 2010 &#8211; one million items in a list</title>
		<link>http://zieglers.wordpress.com/2009/11/21/sharepoint-2010-one-million-items-in-a-list/</link>
		<comments>http://zieglers.wordpress.com/2009/11/21/sharepoint-2010-one-million-items-in-a-list/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 05:27:15 +0000</pubDate>
		<dc:creator>zieglers</dc:creator>
				<category><![CDATA[IT Stuff]]></category>
		<category><![CDATA[MOSS & WSS 3.0]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[million items]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://zieglers.wordpress.com/?p=472</guid>
		<description><![CDATA[
Just like most people, i downloaded and installed SharePoint 2010 last week. Unlike mentioned, I had no issues while installing on Windows 2008 R2 environment. It&#8217;s been a week and still no issues.
Looks like it&#8217;s going to take a while for me to get used to new ribbon interface. Definitely you get to see and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=472&subd=zieglers&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://zieglers.files.wordpress.com/2009/11/sp2010namingconvention.png"><img class="alignnone size-full wp-image-475" title="SP2010NamingConvention" src="http://zieglers.files.wordpress.com/2009/11/sp2010namingconvention.png?w=640&#038;h=259" alt="" width="640" height="259" /></a></p>
<p>Just like most people, i downloaded and installed SharePoint 2010 last week. Unlike mentioned, I had no issues while installing on Windows 2008 R2 environment. It&#8217;s been a week and still no issues.</p>
<p>Looks like it&#8217;s going to take a while for me to get used to new ribbon interface. Definitely you get to see and do more with ribbon, but will take a some time to remember what is where.</p>
<p>Actually, main focus of this post is a lot mentioned new feature of SharePoint 2010. &#8221;Limitation on number of items stored in a list&#8221;  problem seems to be solved &#8211; <strong>Now, SharePoint lists can handle millions of items</strong>.</p>
<p>In order to see this, I decided to do a little experiment. My aim is firstly to insert <strong><span style="text-decoration:underline;">one million items</span> </strong>in a list successfully. As I write this post items are still being inserted, 731371 and still counting&#8230; So far it&#8217;s been 6 hours and still inserting.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/11/sp2010_1.jpg"><img class="alignnone size-full wp-image-474" title="SP2010_1" src="http://zieglers.files.wordpress.com/2009/11/sp2010_1.jpg?w=332&#038;h=242" alt="" width="332" height="242" /></a></p>
<p>I have to also mention that my experiment environment is done on a  Win 2008 R2 with 2 GB Ram and using an external usb hdd. So this waiting time can be way less if you try with a powerful workstation. Anyhow, how do I insert 1 million items to a list? Of course using PowerShell script..</p>
<p>Here is a very simple PowerShell script which inserts items to a list. This script is just assigning &#8216;Title&#8217; column values: <em>Item &#8211; ItemNo</em></p>
<p>========================================================================================</p>
<p>// Set site url<br />
$siteurl = &#8220;http://yourservername&#8221;</p>
<p>// get site obj<br />
$mysite=new-object Microsoft.SharePoint.SPSite($siteurl)</p>
<p>// open root web<br />
$spWeb = $mysite.OpenWeb()<br />
 <br />
// get test list obj<br />
$spList = $spWeb.Lists["TestList"]</p>
<p>// Insert 1 million items<br />
$i = 1001</p>
<p>do { Write-Host &#8220;Item &#8211; &#8220;$i<br />
         $spitem = $spList.Items.Add() <br />
         $spitem["Title"] = $i.tostring()<br />
         $spitem.Update()<br />
         $i++<br />
}<br />
while ($i -le 1000000)</p>
<p>========================================================================================</p>
<p>Will update this post once insert operation is completed&#8230;</p>
<p>(next morning)</p>
<p>Ok, now i see insert operation is completed. As you can see below, one million list items are inserted into a list using PowerShell.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/11/sp2010_2.jpg"><img class="alignnone size-full wp-image-480" title="SP2010_2" src="http://zieglers.files.wordpress.com/2009/11/sp2010_2.jpg?w=214&#038;h=217" alt="" width="214" height="217" /></a></p>
<p>At this point I&#8217;d like to do some test re item select/update/delete operations. Also wondering how filtering is going to work in such a large list. If you have suggestions for other tests or things to check, please let me know, i&#8217;ll try to apply them as well. At the end, I&#8217;d like to have a some sort of comfort level while suggesting a client &#8216;one million item is ok in a SharePoint 2010 list&#8217;.</p>
<p>&#8230; to be continued&#8230;</p>
<p>zieglers</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zieglers.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zieglers.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zieglers.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zieglers.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zieglers.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zieglers.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zieglers.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zieglers.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zieglers.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zieglers.wordpress.com/472/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=472&subd=zieglers&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zieglers.wordpress.com/2009/11/21/sharepoint-2010-one-million-items-in-a-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/525279c5a6d061fb9459d6ae64cb9b52?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">zieglers</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/sp2010namingconvention.png" medium="image">
			<media:title type="html">SP2010NamingConvention</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/sp2010_1.jpg" medium="image">
			<media:title type="html">SP2010_1</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/sp2010_2.jpg" medium="image">
			<media:title type="html">SP2010_2</media:title>
		</media:content>
	</item>
		<item>
		<title>Reading QueryString paramater values using JavaScript in SharePoint</title>
		<link>http://zieglers.wordpress.com/2009/11/13/reading-querystring-paramater-values-using-javascript/</link>
		<comments>http://zieglers.wordpress.com/2009/11/13/reading-querystring-paramater-values-using-javascript/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 19:25:17 +0000</pubDate>
		<dc:creator>zieglers</dc:creator>
				<category><![CDATA[IT Stuff]]></category>
		<category><![CDATA[MOSS & WSS 3.0]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[parameter]]></category>
		<category><![CDATA[QueryString]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[window.location.search.substring]]></category>

		<guid isPermaLink="false">http://zieglers.wordpress.com/?p=464</guid>
		<description><![CDATA[Here is a nice javascript snippet which allows you to read querystring parameter values. Actually i used this code in a SharePoint application page to read ListId and ItemId values that i was passing from previous page.
// ************************************************************
// Create an array to keep query string variables
var qsParm = new Array();
// This function gets query string [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=464&subd=zieglers&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Here is a nice javascript snippet which allows you to read querystring parameter values. Actually i used this code in a SharePoint application page to read ListId and ItemId values that i was passing from previous page.</p>
<p>// ************************************************************<br />
// Create an array to keep query string variables<br />
var qsParm = new Array();<br />
// This function gets query string values from current page<br />
// and stores them in above defined array<br />
function qs()<br />
    {<br />
            var query = window.location.search.substring(1);<br />
            var parms = query.split(&#8216;&amp;&#8217;);<br />
           <br />
            for (var i=0; i&lt;parms.length; i++) {<br />
                var pos = parms[i].indexOf(&#8216;=&#8217;);<br />
                if (pos &gt; 0)<br />
                {<br />
                    var key = parms[i].substring(0,pos);<br />
                    var val = parms[i].substring(pos+1);<br />
                    qsParm[key] = val;<br />
                }<br />
            }<br />
    }</p>
<p>qsParm['ListId'] = null;<br />
qsParm['ItemId'] = null;<br />
// Call function &#8211; get query strings<br />
qs();<br />
// For example show ListId<br />
alert(qsParm['ListId'])<br />
// ************************************************************</p>
<p>zieglers</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zieglers.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zieglers.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zieglers.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zieglers.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zieglers.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zieglers.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zieglers.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zieglers.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zieglers.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zieglers.wordpress.com/464/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=464&subd=zieglers&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zieglers.wordpress.com/2009/11/13/reading-querystring-paramater-values-using-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/525279c5a6d061fb9459d6ae64cb9b52?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">zieglers</media:title>
		</media:content>
	</item>
		<item>
		<title>SAP IDES ERP 6.0 EHP4 / NetWeaver 7.01 Installation Guide on Windows 2003 64-bit – Part 2</title>
		<link>http://zieglers.wordpress.com/2009/11/12/sap-ides-erp-6-0-ehp4-netweaver-7-01-installation-guide-on-windows-2003-64-bit-%e2%80%93-part-2/</link>
		<comments>http://zieglers.wordpress.com/2009/11/12/sap-ides-erp-6-0-ehp4-netweaver-7-01-installation-guide-on-windows-2003-64-bit-%e2%80%93-part-2/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 17:03:14 +0000</pubDate>
		<dc:creator>zieglers</dc:creator>
				<category><![CDATA[IT Stuff]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[ECC]]></category>
		<category><![CDATA[ECC 6.0]]></category>
		<category><![CDATA[EHP4]]></category>
		<category><![CDATA[ERP]]></category>
		<category><![CDATA[IDES]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[NetWeaver]]></category>

		<guid isPermaLink="false">http://zieglers.wordpress.com/?p=453</guid>
		<description><![CDATA[In this 2nd part of the article, I&#8217;ll mention installation environment details. Although SAP doesn&#8217;t recommend installation on laptops, I did my test installation on a virtual machine. As host machine I used Windows 7 Ultimate 64bit and VMware Workstation. Here are guest 64bit operation system details:
=========================================================================================
Installation Guest Machine details
* Windows Server 2003 R2 &#8211; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=453&subd=zieglers&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In this 2nd part of the article, I&#8217;ll mention installation environment details. Although SAP doesn&#8217;t recommend installation on laptops, I did my test installation on a virtual machine. As host machine I used Windows 7 Ultimate 64bit and VMware Workstation. Here are guest 64bit operation system details:</p>
<p>=========================================================================================</p>
<h2><span style="color:#008000;">Installation Guest Machine details</span></h2>
<p><strong>* Windows Server 2003 R2 &#8211; Standard x64 Edition</strong></p>
<p><a href="http://zieglers.files.wordpress.com/2009/11/19.png"><img class="alignnone size-full wp-image-454" title="19" src="http://zieglers.files.wordpress.com/2009/11/19.png?w=413&#038;h=192" alt="19" width="413" height="192" /></a></p>
<p><strong>* MS SQL Server 2008 x64 <span style="text-decoration:underline;">with collation CP850_BIN2</span> </strong>(this is very important. you can only install SAP with this collation)</p>
<p><a href="http://zieglers.files.wordpress.com/2009/11/23.png"><img class="alignnone size-full wp-image-457" title="23" src="http://zieglers.files.wordpress.com/2009/11/23.png?w=285&#038;h=67" alt="23" width="285" height="67" /></a></p>
<p><strong>* Java JDK 1.4.2_17 windows-amd 64bit.</strong> If you have problems finding a 64bit version for Java 1.4.2_? SDK, here is the link: <a href="http://java.sun.com/j2se/1.4.2/SAPsite/download.html">http://java.sun.com/j2se/1.4.2/SAPsite/download.html</a></p>
<p>Java SDK versions provided in above link are specific builds for SAP customers. For my installation, I used following version.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/11/20.png"><img class="alignnone size-full wp-image-455" title="20" src="http://zieglers.files.wordpress.com/2009/11/20.png?w=209&#038;h=22" alt="20" width="209" height="22" /></a></p>
<p>Also, you should download <strong>Java Cryptography Extension 1.4.2 </strong>since SAP Installer will ask for it during installation.</p>
<p>==========================================================================================</p>
<h2><span style="color:#008000;">Starting Installation Process</span></h2>
<p>If you have downloaded all necessary installation media as described in part 1(<a href="http://zieglers.wordpress.com/2009/11/10/sap-ides-erp-6-0-ehp4-netweaver-7-01-installation-guide/">http://zieglers.wordpress.com/2009/11/10/sap-ides-erp-6-0-ehp4-netweaver-7-01-installation-guide/</a>) and prepared your installation guest machine as described above, now we can start installing SAP IDES ERP 6.0.</p>
<p>&#8230; to be continued&#8230;</p>
<p>zieglers</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zieglers.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zieglers.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zieglers.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zieglers.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zieglers.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zieglers.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zieglers.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zieglers.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zieglers.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zieglers.wordpress.com/453/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=453&subd=zieglers&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zieglers.wordpress.com/2009/11/12/sap-ides-erp-6-0-ehp4-netweaver-7-01-installation-guide-on-windows-2003-64-bit-%e2%80%93-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/525279c5a6d061fb9459d6ae64cb9b52?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">zieglers</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/19.png" medium="image">
			<media:title type="html">19</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/23.png" medium="image">
			<media:title type="html">23</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/20.png" medium="image">
			<media:title type="html">20</media:title>
		</media:content>
	</item>
		<item>
		<title>SAP IDES ERP 6.0 EHP4 / NetWeaver 7.01 Installation Guide on Windows 2003 64-bit &#8211; Part 1</title>
		<link>http://zieglers.wordpress.com/2009/11/10/sap-ides-erp-6-0-ehp4-netweaver-7-01-installation-guide/</link>
		<comments>http://zieglers.wordpress.com/2009/11/10/sap-ides-erp-6-0-ehp4-netweaver-7-01-installation-guide/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 04:32:58 +0000</pubDate>
		<dc:creator>zieglers</dc:creator>
				<category><![CDATA[IT Stuff]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[ECC]]></category>
		<category><![CDATA[ECC 6.0]]></category>
		<category><![CDATA[EHP4]]></category>
		<category><![CDATA[Enhance Package]]></category>
		<category><![CDATA[ERP]]></category>
		<category><![CDATA[IDES]]></category>
		<category><![CDATA[Installation]]></category>

		<guid isPermaLink="false">http://zieglers.wordpress.com/?p=423</guid>
		<description><![CDATA[
Recently i was checking the posts I wrote about SAP IDES installation, and realized it&#8217;s been a while since I wrote the last one: http://zieglers.wordpress.com/2007/08/26/sap-r3-ides-47200-sr1-installation-on-windows-2003-r3-and-sql-server-2005/
Well, I think a brand new one is almost necessary: Here I give u, SAP IDES ECC 6.0 Installation on Windows 2003 with SQL Server 2008. I&#8217;ll try to explain the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=423&subd=zieglers&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://zieglers.files.wordpress.com/2009/11/ecc-chart.png"><img class="alignnone size-full wp-image-468" title="ECC Chart" src="http://zieglers.files.wordpress.com/2009/11/ecc-chart.png?w=704&#038;h=413" alt="ECC Chart" width="704" height="413" /></a></p>
<p>Recently i was checking the posts I wrote about SAP IDES installation, and realized it&#8217;s been a while since I wrote the last one: <a href="http://zieglers.wordpress.com/2007/08/26/sap-r3-ides-47200-sr1-installation-on-windows-2003-r3-and-sql-server-2005/">http://zieglers.wordpress.com/2007/08/26/sap-r3-ides-47200-sr1-installation-on-windows-2003-r3-and-sql-server-2005/</a></p>
<p>Well, I think a brand new one is almost necessary: Here I give u, <strong>SAP IDES ECC 6.0 Installation on Windows 2003 with SQL Server 2008</strong>. I&#8217;ll try to explain the process with screenshots and try to keep it really simple. Hope it works!</p>
<p>=========================================================================================================</p>
<h2>Step &#8211; 1: Download installation DVDs / files from SAP Service Marketplace:</h2>
<h3><span style="color:#008000;">Navigate to installation media</span></h3>
<p><a href="https://websmp101.sap-ag.de/~SAPIDP/002006825000000234912001E">https://websmp101.sap-ag.de/~SAPIDP/002006825000000234912001E</a></p>
<p>Once you are at SAP Service Marketplace homepage, first click &#8216;<strong>Downloads</strong>&#8216; in first line navigation and then &#8216;<strong>SAP Installations &amp; Upgrades</strong>&#8216;.</p>
<p>1-) <a href="http://zieglers.files.wordpress.com/2009/11/1.png"><img class="alignnone size-full wp-image-425" title="1" src="http://zieglers.files.wordpress.com/2009/11/1.png?w=257&#038;h=76" alt="1" width="257" height="76" /></a>  2-) <a href="http://zieglers.files.wordpress.com/2009/11/2.png"><img class="alignnone size-full wp-image-426" title="2" src="http://zieglers.files.wordpress.com/2009/11/2.png?w=243&#038;h=82" alt="2" width="243" height="82" /></a>  </p>
<p>On the left navigation, select &#8216;<strong>Installations and Upgrades</strong>&#8216;, then &#8216;<strong>SAP Application Components</strong>&#8216;.</p>
<p>3-) <a href="http://zieglers.files.wordpress.com/2009/11/3.png"><img class="alignnone size-full wp-image-427" title="3" src="http://zieglers.files.wordpress.com/2009/11/3.png?w=363&#038;h=292" alt="3" width="363" height="292" /></a>   4-)<a href="http://zieglers.files.wordpress.com/2009/11/4.png"><img title="4" src="http://zieglers.files.wordpress.com/2009/11/4.png?w=380&#038;h=337" alt="4" width="380" height="337" /></a></p>
<p>Then, select &#8216;<strong>SAP ERP</strong>&#8216;, &#8216;<strong>SAP ERP Enhance Package</strong>&#8216; and &#8216;<strong>EHP for SAP ERP 6.0 / NW 7.01</strong>&#8216; respectively, as shown below. </p>
<p>5-) <a href="http://zieglers.files.wordpress.com/2009/11/5.png"><img class="alignnone size-full wp-image-429" title="5" src="http://zieglers.files.wordpress.com/2009/11/5.png?w=263&#038;h=391" alt="5" width="263" height="391" /></a> 6-) <a href="http://zieglers.files.wordpress.com/2009/11/6.png"><img class="alignnone size-full wp-image-430" title="6" src="http://zieglers.files.wordpress.com/2009/11/6.png?w=312&#038;h=222" alt="6" width="312" height="222" /></a> 7-) <a href="http://zieglers.files.wordpress.com/2009/11/7.png"><img class="alignnone size-full wp-image-431" title="7" src="http://zieglers.files.wordpress.com/2009/11/7.png?w=271&#038;h=141" alt="7" width="271" height="141" /></a></p>
<p>Since we&#8217;ll be installing IDES version, select &#8216;<strong>IDES-Version</strong>&#8216;, and then &#8216;<strong>Windows Server &#8211; SQL Server</strong>&#8216;.</p>
<p> <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_cool.gif' alt='8-)' class='wp-smiley' /> <a href="http://zieglers.files.wordpress.com/2009/11/8.png"><img class="alignnone size-full wp-image-432" title="8" src="http://zieglers.files.wordpress.com/2009/11/8.png?w=262&#038;h=144" alt="8" width="262" height="144" /></a> 9-) <a href="http://zieglers.files.wordpress.com/2009/11/9.png"><img class="alignnone size-full wp-image-433" title="9" src="http://zieglers.files.wordpress.com/2009/11/9.png?w=318&#038;h=314" alt="9" width="318" height="314" /></a></p>
<h3><span style="color:#008000;">Download media for Export, SAP Installer, Java Component, UC Kernel and SAP GUI</span></h3>
<p>Installation media necessary for SAP ERP 6.0 can be categorized in 5 main titles. This means once you start installing SAP ERP 6.0, SAP installer will ask you installation DVDs for 3 parts. Those are 1.<strong> Export DVDs</strong>, 2. <strong>Java Component</strong>, 3.<strong>Kernel. </strong>Additionally, you&#8217;ll need <strong>SAP Installer </strong>media itself and also <strong>SAP GUI</strong>. Now, let&#8217;s take a look which ones to download.</p>
<p><span style="text-decoration:underline;">Export DVDs:</span> You need to download <strong>27 </strong>export parts named &#8216;<strong>IDES ERP 6.04/NW 7.01 Inst. Export</strong>&#8216;. Once you extract those, there will be <strong>4 </strong>DVDs, as shown below. Normal SAP ERP 6.0 installer comes with 2 export DVDs. Extra 2 DVDs result from the fact that IDES version includes many sample companies and related data to be installed.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/11/10.png"><img class="alignnone size-full wp-image-440" title="10" src="http://zieglers.files.wordpress.com/2009/11/10.png?w=683&#038;h=382" alt="10" width="683" height="382" /></a>   <a href="http://zieglers.files.wordpress.com/2009/11/11.png"><img class="alignnone size-full wp-image-441" title="11" src="http://zieglers.files.wordpress.com/2009/11/11.png?w=160&#038;h=136" alt="11" width="160" height="136" /></a></p>
<p><strong><span style="color:#ff0000;">Note from installation experience: </span></strong>Once installer finishes import jobs, you&#8217;ll have almost <strong><span style="text-decoration:underline;">160 GB sized database files</span></strong> and 10GB log file in total. No kiddin&#8217;! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  (See below)</p>
<p><a href="http://zieglers.files.wordpress.com/2009/11/12.png"><img class="alignnone size-full wp-image-442" title="12" src="http://zieglers.files.wordpress.com/2009/11/12.png?w=163&#038;h=114" alt="12" width="163" height="114" /></a>     <a href="http://zieglers.files.wordpress.com/2009/11/13.png"><img class="alignnone size-full wp-image-443" title="13" src="http://zieglers.files.wordpress.com/2009/11/13.png?w=362&#038;h=300" alt="13" width="362" height="300" /></a></p>
<p><span style="text-decoration:underline;">Java Component:</span> You need to download 4 parts for &#8216;<strong>NW 7.0 EHP1 SR1 Java based SW Components</strong>&#8216; as shown below. This will be only 1 DVD. Depending on your installation choice &#8211; ABAP vs. JAVA based &#8211; you might not need those during installation.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/11/14.png"><img class="alignnone size-full wp-image-445" title="14" src="http://zieglers.files.wordpress.com/2009/11/14.png?w=605&#038;h=102" alt="14" width="605" height="102" /></a></p>
<p>Also you need 3 parts BS Java components, &#8216;<strong>Java Comp. 7.0 SR1: ERP,CRM,SRM,SCM</strong>&#8216;, as shown below.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/11/15.png"><img class="alignnone size-full wp-image-446" title="15" src="http://zieglers.files.wordpress.com/2009/11/15.png?w=598&#038;h=77" alt="15" width="598" height="77" /></a></p>
<p><span style="text-decoration:underline;">SAP GUI 7.10:</span> You need to download 2 parts for <strong>&#8216;NW 7.0 Presentation &#8211; 7.10 Compilation 4 Present.</strong>&#8216;, as shown below.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/11/16.png"><img class="alignnone size-full wp-image-448" title="16" src="http://zieglers.files.wordpress.com/2009/11/16.png?w=632&#038;h=46" alt="16" width="632" height="46" /></a></p>
<p><span style="text-decoration:underline;">UC Kernel:</span> You need to download 1 part for &#8216;<strong>BS 7 SR1 UC-Kernel 7.01 Windows Server on x64 64bit</strong>&#8216;, as shown below.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/11/17.png"><img class="alignnone size-full wp-image-449" title="17" src="http://zieglers.files.wordpress.com/2009/11/17.png?w=634&#038;h=27" alt="17" width="634" height="27" /></a></p>
<p><span style="text-decoration:underline;">SAP Installation Master:</span> You need to download 3 parts for &#8216;<strong>IDES Inst. Mst. 7.01: ERP, CRM, SCM</strong>&#8216;, as shown below. This is basically our SAP NetWeaver Software Installer.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/11/18.png"><img class="alignnone size-full wp-image-450" title="18" src="http://zieglers.files.wordpress.com/2009/11/18.png?w=578&#038;h=76" alt="18" width="578" height="76" /></a></p>
<p>=========================================================================================================</p>
<p>This completes 1st part of this article &#8211; SAP IDES ERP 6.0 Installation &#8211; <strong>Gathering Installation Media</strong>. We&#8217;ll continue with installation environment in 2nd part of the article and start the installation.</p>
<p>If you didn&#8217;t recieve your installation media as DVDs, above mentioned approach was an alternate way to get your installation media. Hope this helps and let me know if you have questions.</p>
<p>zieglers (runs SAP) <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zieglers.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zieglers.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zieglers.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zieglers.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zieglers.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zieglers.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zieglers.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zieglers.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zieglers.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zieglers.wordpress.com/423/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=423&subd=zieglers&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zieglers.wordpress.com/2009/11/10/sap-ides-erp-6-0-ehp4-netweaver-7-01-installation-guide/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/525279c5a6d061fb9459d6ae64cb9b52?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">zieglers</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/ecc-chart.png" medium="image">
			<media:title type="html">ECC Chart</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/1.png" medium="image">
			<media:title type="html">1</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/2.png" medium="image">
			<media:title type="html">2</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/3.png" medium="image">
			<media:title type="html">3</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/4.png" medium="image">
			<media:title type="html">4</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/5.png" medium="image">
			<media:title type="html">5</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/6.png" medium="image">
			<media:title type="html">6</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/7.png" medium="image">
			<media:title type="html">7</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/8.png" medium="image">
			<media:title type="html">8</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/9.png" medium="image">
			<media:title type="html">9</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/10.png" medium="image">
			<media:title type="html">10</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/11.png" medium="image">
			<media:title type="html">11</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/12.png" medium="image">
			<media:title type="html">12</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/13.png" medium="image">
			<media:title type="html">13</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/14.png" medium="image">
			<media:title type="html">14</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/15.png" medium="image">
			<media:title type="html">15</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/16.png" medium="image">
			<media:title type="html">16</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/17.png" medium="image">
			<media:title type="html">17</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/18.png" medium="image">
			<media:title type="html">18</media:title>
		</media:content>
	</item>
		<item>
		<title>SharePoint Alerts Export Import add-in Part – 3</title>
		<link>http://zieglers.wordpress.com/2009/11/09/sharepoint-alerts-export-import-add-in-part-%e2%80%93-3/</link>
		<comments>http://zieglers.wordpress.com/2009/11/09/sharepoint-alerts-export-import-add-in-part-%e2%80%93-3/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 18:22:17 +0000</pubDate>
		<dc:creator>zieglers</dc:creator>
				<category><![CDATA[IT Stuff]]></category>
		<category><![CDATA[MOSS & WSS 3.0]]></category>
		<category><![CDATA[Alerts]]></category>
		<category><![CDATA[Import]]></category>
		<category><![CDATA[p_query]]></category>
		<category><![CDATA[search alerts]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[SPAlert]]></category>

		<guid isPermaLink="false">http://zieglers.wordpress.com/?p=404</guid>
		<description><![CDATA[
Here is the 3rd part of the article &#8211; SharePoint Alerts Export Import add-in. I realized that it&#8217;s been a while that i wrote first and second articles. Taking a quick look at those, i see that &#8220;importing alerts&#8221; logic is left for this article.
Importing alerts can be done for a selected site collection and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=404&subd=zieglers&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://zieglers.files.wordpress.com/2009/11/alerts.jpg"><img class="alignnone size-full wp-image-470" title="Alerts" src="http://zieglers.files.wordpress.com/2009/11/alerts.jpg?w=300&#038;h=300" alt="Alerts" width="300" height="300" /></a></p>
<p>Here is the 3rd part of the article &#8211; SharePoint Alerts Export Import add-in. I realized that it&#8217;s been a while that i wrote first and second articles. Taking a quick look at those, i see that <strong>&#8220;importing alerts&#8221; </strong>logic is left for this article.</p>
<p>Importing alerts can be done for a selected site collection and also individual subsites can also be selected explicitly. Alerts export logic was exporting all alerts of a site collection, not only root site, but also all subsites. Also those alert details were stored in an xml file in a structured manner. However, for import operation we need a selective import logic. Not all the time we might need to import alerts for a whole site collection. That&#8217;s why logic will be a little more complicated than exporting alerts.  </p>
<p>Moreover, an import operation can take some time based on number of alerts being imported and number of subsites exist. That&#8217;s why we need to have an SP Long operation so that user knows operation is being executed. Here there is a nice thing to note, that is, if user somehow closes the browser, import operation is not interrupted and goes on in the background until finished.Another important thing is the difference between type of alerts:  <strong>sp list alerts </strong>and <strong>search alerts</strong>. Although both of them are using <strong>SPAlert</strong> class, based on attributes being set a generic list alert can become a search alert. (<strong>p_query</strong> is the most important attribute for a search alert, basically which holds the query of the search alert)Here is a look how our <strong>Alerts Import </strong>application page ui is going to be like.   </p>
<p><a href="http://zieglers.files.wordpress.com/2009/11/1.jpg"><img title="1" src="http://zieglers.files.wordpress.com/2009/11/1.jpg?w=892&#038;h=358" alt="1" width="892" height="358" /></a></p>
<p>After this intro, it&#8217;s time to get started.  Firstly let&#8217;s take a look at UI design. </p>
<h2><span style="color:#0000ff;">Alerts Import Page &#8211; UI Design</span></h2>
<p>As for site collection selector seen above in first subsection of UI, we&#8217;ll use OOTB SharePoint <span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;"><strong>SiteAdministrationSelector </strong><span style="color:#000000;">control. This control is frequently used in many application pages of Central Admin. Then, in order to list all subsites (in subsection 2) after a site collection is selected, we&#8217;ll have a <strong>CheckBoxList</strong> control. Finally, there is going to be a <strong>FileUpload </strong>control to select import file &#8211; the file which is exported using Alerts Export page. In addition, there is a <strong>&#8220;Verify&#8221; </strong>button to validate selected import file.</span></span></span>  </p>
<p><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;"><strong>SiteAdministrationSelector control</strong></span></span> </p>
<pre>&lt;!-- *********************************************************
DISPLAY THE SITE COLLECTION SELECTOR USING THE InputFormSecton AND SiteAdministrationSelector CONTROLS. --&gt;
&lt;wssuc:InputFormSection runat="server"
   Title="&lt;%$Resources:spadmin, multipages_sitecollection_title%&gt;"
   Description="&lt;%$Resources:spadmin, multipages_sitecollection_desc%&gt;" &gt;
   &lt;Template_InputFormControls&gt;
      &lt;tr&gt;&lt;td&gt;
<pre>         &lt;!-- Put your control here--&gt;</pre>
<p>&lt;SharePoint:SiteAdministrationSelector id="SiteCollectionSelector" runat="server" OnContextChange="OnContextChange" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/Template_InputFormControls&gt; &lt;/wssuc:InputFormSection&gt;&lt;!-- ********************************************************** --&gt;   </pre>
<div><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;"><strong>Subsites CheckBoxList</strong></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </div>
<div><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
<pre><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;"><span style="color:#000000;">&lt;!-- **********************************************************
DISPLAY ALL SUBSITES USING THE InputFormSecton AND ASP:CheckBoxList CONTROLS --&gt;
&lt;wssuc:InputFormSection runat="server"
   Title="Web Sites"
   Description="Check web sites for which you want to import alerts" &gt;

   &lt;Template_InputFormControls&gt;
   &lt;tr&gt;&lt;td&gt;
      &lt;asp:CheckBoxList ID="cbWebs" runat="server" CssClass="ms-listheaderlabel" EnableViewState="true"   /&gt;
   &lt;/td&gt;&lt;/tr&gt;        
   &lt;/Template_InputFormControls&gt;
&lt;/wssuc:InputFormSection&gt;
&lt;!-- *********************************************************** --&gt;</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

<span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;"><strong>FileUpload control for Alerts Import file and Verify Button</strong></span></span>
<span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;"> </span></span><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;"><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
<pre><span style="color:#000000;">&lt;!-- File name section --&gt;
&lt;wssuc:InputFormSection
    Id="SelectFileSection"
    Title="Select Alerts File"
    Description="Browse to the alerts file you intend to import."
    runat="server"&gt;
    &lt;Template_InputFormControls&gt;

        &lt;wssuc:InputFormControl runat="server" LabelText="Name :"&gt;
         &lt;Template_Control&gt;
         &lt;span dir="ltr"&gt; 
          &lt;asp:FileUpload ID="FileUpload1" runat="server" /&gt;
         &lt;/span&gt;
         &lt;/Template_Control&gt;
        &lt;/wssuc:InputFormControl&gt;

        &lt;wssuc:InputFormControl LabelText="Before importing, you can check this alerts import file for detailed errors, warnings, and other information." runat="server"&gt;
         &lt;Template_Control&gt;
          &lt;asp:button class="ms-ButtonHeightWidth" runat="server"
           text="Verify"
           OnClick="ButtonVerifyClick"
           id="ButtonVerify"&gt;
       &lt;/asp:button&gt;
         &lt;/Template_Control&gt;
        &lt;/wssuc:InputFormControl&gt;

        &lt;wssuc:InputFormControl runat="server"&gt;
         &lt;Template_Control&gt;
          &lt;div&gt;&lt;asp:Label id="lblFileValidation" runat="server"/&gt;&lt;/div&gt;
         &lt;/Template_Control&gt;
        &lt;/wssuc:InputFormControl&gt; </span>
<span style="color:#000000;">    &lt;/Template_InputFormControls&gt;
&lt;/wssuc:InputFormSection&gt;</span></pre>
</pre>
<h2><span style="color:#0000ff;">Alerts Import Page – Import Logic Design</span></h2>
<p>So far, we have our UI elements ready. Now, let&#8217;s take a look at application logic. Almost all page logic is executed after user clicks ok button. Here is <strong>BtnSubmit_Click </strong>logic:</p>
<h2><strong><span style="text-decoration:underline;">Basic validations</span></strong></h2>
<ul>
<li>Check if at least one web selected or not &#8211;&gt; Display validation message if no web selected</li>
<li>Check uploaded file &#8211;&gt;Restrict the user to upload only .xml file</li>
</ul>
<h2><strong><span style="text-decoration:underline;">Preparations</span></strong></h2>
<ul>
<li>Assign import log file name and path</li>
<li>Get url, port, virtual path details</li>
</ul>
<h2><strong><span style="text-decoration:underline;">Import Operation</span></strong></h2>
<ul>
<li>Read Alerts xml file for import operation</li>
<li>Initialize date and alert count</li>
<li>Iterate through each row of &#8216;Alerts&#8217;. This is also equivalent to looping through each web object.
<ul>
<li>Only import alerts for selected webs</li>
<li>Get alert property values from xml</li>
<li>Check Alert Template Type. This determines if an alert is a Search alert, List Alert, Item Alert &#8230;etc.</li>
<li>Create alerts</li>
</ul>
</li>
</ul>
<h2><span style="color:#0000ff;">Alerts Import Page – Implementation</span></h2>
<h2><strong><span style="text-decoration:underline;">Basic validations</span></strong></h2>
<p>Before starting to import alerts, first we need to check alerts import file. Here we get some info about file using <strong>FileUpload</strong> control and only allow .xml files.</p>
<p>// Check uploaded file<br />
if (FileUpload1.HasFile)<br />
{<br />
    // get the full path of your computer<br />
    string strFileNameWithPath = FileUpload1.PostedFile.FileName;<br />
    // get the extension name of the file<br />
    string strExtensionName = System.IO.Path.GetExtension(strFileNameWithPath);<br />
    // get the filename of user file<br />
    string strFileName = System.IO.Path.GetFileName(strFileNameWithPath);<br />
    // get the file size<br />
    int intFileSize = FileUpload1.PostedFile.ContentLength / 1024; // convert into byte</p>
<p>    // Restrict the user to upload only .xml file<br />
    strExtensionName = strExtensionName.ToLower();<br />
    if (strExtensionName.Equals(&#8220;.xml&#8221;))<br />
    {<br />
        // upload the file on the server<br />
        FileUpload1.PostedFile.SaveAs(AlertsDir + strFileName);</p>
<p>        strMessages += &#8220;Uploaded file details &lt;hr /&gt;&#8221; +<br />
            &#8220;File path on your Computer: &#8221; + strFileNameWithPath + &#8220;&lt;br /&gt;&#8221; +<br />
            &#8220;File Name: &#8221; + strFileName + &#8220;&lt;br /&gt;&#8221; +<br />
            &#8220;File Extension Name: &#8221; + strExtensionName + &#8220;&lt;br /&gt;&#8221; +<br />
            &#8220;File Size: &#8221; + intFileSize.ToString();<br />
       <br />
        // Assign Alerts File Path<br />
        alertsFile = AlertsDir + strFileName;<br />
    }<br />
    else<br />
        strMessages += &#8220;&lt;br /&gt;Only &lt;b&gt;.xml&lt;/b&gt; file is allowed, try again!&lt;br /&gt;&#8221;;<br />
}<br />
else<br />
    strMessages += &#8220;&lt;br /&gt;&lt;b&gt;Select Alerts File: &lt;/b&gt;You must select a valid alerts import file.&lt;br /&gt;&#8221;;</p>
<h2><strong><span style="text-decoration:underline;">Preparations</span></strong></h2>
<p>You can choose an import log file naming convention based on your needs. Here I used DateTime stamp.</p>
<p>// Assign import log file name and path</p>
<p>string logfile = logDir + &#8220;ImportLog_&#8221; + DateTime.Today.Day.ToString() + DateTime.Today.Month + DateTime.Today.Year.ToString() + &#8220;.txt&#8221;;</p>
<h2><strong><span style="text-decoration:underline;">Import Operation</span></strong></h2>
<ul>
<li>Read Alerts xml file for import operation</li>
</ul>
<p>// Read Alerts xml file for import operation<br />
System.Data.DataSet ds = new System.Data.DataSet();</p>
<p>// Read selected alerts import xml file<br />
ds.ReadXml(alertsFile);<br />
ds.Locale = System.Globalization.CultureInfo.CurrentUICulture;</p>
<p>// Read xml document<br />
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();<br />
doc.Load(alertsFile);</p>
<p>// Keep a list of selected webs in an arraylist<br />
ArrayList selectedWebsList = new ArrayList();<br />
foreach (ListItem item in cbWebs.Items)<br />
    if (item.Selected)<br />
        selectedWebsList.Add(item.Text);</p>
<ul>
<li>Initialize date and alert count and check datatable loaded by xml file.</li>
</ul>
<p>// Initialize date and alert count<br />
long AlertCount = 0;<br />
DateTime start = DateTime.Now;<br />
DateTime finish = DateTime.Now;</p>
<p>// Check if xml file has tables for alerts data<br />
if (ds.Tables.Count &lt; 2)<br />
{<br />
    LogMessageToFile(logDir + &#8220;ErrorLog.txt&#8221;, &#8220;Not a valid Alerts xml file&#8221;);<br />
    strMessages += &#8220;&lt;br /&gt;&lt;font color=red&gt;&lt;b&gt;File Error: &lt;/b&gt;&lt;/font&gt;Not a valid Alerts xml file! &lt;br /&gt;&#8221;;<br />
}</p>
<ul>
<li>Iterate through each row of &#8216;Alerts&#8217;. This is also equivalent to looping through each web object.
<ul>
<li>Only import alerts for selected webs</li>
<li>Get alert property values from xml</li>
<li>Check Alert Template Type. This determines if an alert is a Search alert, List Alert, Item Alert &#8230;etc.</li>
<li>Create alerts</li>
</ul>
</li>
</ul>
<p>zieglers</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zieglers.wordpress.com/404/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zieglers.wordpress.com/404/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zieglers.wordpress.com/404/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zieglers.wordpress.com/404/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zieglers.wordpress.com/404/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zieglers.wordpress.com/404/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zieglers.wordpress.com/404/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zieglers.wordpress.com/404/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zieglers.wordpress.com/404/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zieglers.wordpress.com/404/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=404&subd=zieglers&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zieglers.wordpress.com/2009/11/09/sharepoint-alerts-export-import-add-in-part-%e2%80%93-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/525279c5a6d061fb9459d6ae64cb9b52?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">zieglers</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/alerts.jpg" medium="image">
			<media:title type="html">Alerts</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/11/1.jpg" medium="image">
			<media:title type="html">1</media:title>
		</media:content>
	</item>
		<item>
		<title>Custom Metadata Search using SharePoint Search Object Model</title>
		<link>http://zieglers.wordpress.com/2009/10/09/custom-metadata-search-using-sharepoint-search-object-model/</link>
		<comments>http://zieglers.wordpress.com/2009/10/09/custom-metadata-search-using-sharepoint-search-object-model/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 15:29:00 +0000</pubDate>
		<dc:creator>zieglers</dc:creator>
				<category><![CDATA[IT Stuff]]></category>
		<category><![CDATA[MOSS & WSS 3.0]]></category>
		<category><![CDATA[Custom Metadata]]></category>
		<category><![CDATA[FullTextSqlQuery]]></category>
		<category><![CDATA[Managed Property]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[scope]]></category>
		<category><![CDATA[search metadata]]></category>
		<category><![CDATA[Search Object Model]]></category>
		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://zieglers.wordpress.com/?p=395</guid>
		<description><![CDATA[
Here is a little code snippet re custom metadata search using SharePoint Object Model. This code is just querying a predefined scope &#8211; MySearchScope - for custom metadata field &#8211; MyCustomMetadata. Search Criteria is passed from a text field named txtSearchCriteria.
There are couple of things to note here:
1. Make sure you created a Managed Property for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=395&subd=zieglers&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://zieglers.files.wordpress.com/2009/10/custommetadata.jpg"><img class="alignnone size-full wp-image-402" title="CustomMetadata" src="http://zieglers.files.wordpress.com/2009/10/custommetadata.jpg?w=381&#038;h=253" alt="CustomMetadata" width="381" height="253" /></a></p>
<p>Here is a little code snippet re custom metadata search using SharePoint Object Model. This code is just querying a predefined scope &#8211; <strong>MySearchScope </strong>- for custom metadata field &#8211; <strong>MyCustomMetadata</strong>. Search Criteria is passed from a text field named <strong>txtSearchCriteria</strong>.</p>
<p>There are couple of things to note here:</p>
<p>1. Make sure you created a <strong>Managed Property </strong>for your custom metadata in your SSP.</p>
<p>2. Make sure that your custom scope is configured properly. It&#8217;s good practice to have a <span style="text-decoration:underline;">separate content source </span>assigned for your custom scope.</p>
<p>3. Make sure that your custom scope is <strong>Shared, compiled and ready to use.</strong></p>
<p>4.Be careful with QueryText construction. Custom scope must be enclosed in <strong>&#8221; &#8221; </strong>in WHERE clause.</p>
<p>==================================================================================</p>
<p>DataTable queryDataTable = new DataTable();<br />
SPSecurity.RunWithElevatedPrivileges(delegate()</p>
<p>{</p>
<p>using (SPSite site = new SPSite(siteUrl))</p>
<p>   {<br />
      <span style="color:#008000;"><strong>// Construct query object based on document number entered bu user<br />
      // Create a new FullTextSqlQuery class &#8211; use property intializers to set query<br />
</strong></span>      FullTextSqlQuery myQuery = new FullTextSqlQuery(ServerContext.Current)<br />
      {<br />
         <strong><span style="color:#008000;">// Construct query text</span></strong><br />
         QueryText = &#8220;SELECT Title, Rank, Size, Description, Write, Path, <strong>MyCustomMetadata </strong>FROM <span style="color:#008000;"><strong>portal</strong></span>..scope() WHERE <strong>MyCustomMetadata </strong>= <strong><span style="color:#ff0000;">&#8216;</span></strong>&#8221; +  txtSearchCriteria.Text + &#8220;<strong><span style="color:#ff0000;">&#8216;</span></strong>  AND  ( (\<span style="color:#ff0000;"><strong>&#8220;</strong></span>SCOPE\<span style="color:#ff0000;"><strong>&#8220;</strong></span> = &#8216;<strong>MySearchScope </strong>&#8216;) )   ORDER BY \&#8221;Rank\&#8221; DESC&#8221;,<br />
         ResultTypes = ResultType.RelevantResults<br />
      };</p>
<p>      <strong><span style="color:#008000;">// execute the query and load the results into a datatable</span></strong><br />
      ResultTableCollection queryResults = myQuery.Execute();<br />
      ResultTable queryResultsTable = queryResults[ResultType.RelevantResults];<br />
     <strong><span style="color:#008000;"> // Load table with results<br />
</span></strong>      queryDataTable.Load(queryResultsTable, LoadOption.OverwriteChanges);</p>
<p>   }</p>
<p>});</p>
<p>==================================================================================</p>
<p>zieglers</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zieglers.wordpress.com/395/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zieglers.wordpress.com/395/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zieglers.wordpress.com/395/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zieglers.wordpress.com/395/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zieglers.wordpress.com/395/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zieglers.wordpress.com/395/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zieglers.wordpress.com/395/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zieglers.wordpress.com/395/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zieglers.wordpress.com/395/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zieglers.wordpress.com/395/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=395&subd=zieglers&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zieglers.wordpress.com/2009/10/09/custom-metadata-search-using-sharepoint-search-object-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/525279c5a6d061fb9459d6ae64cb9b52?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">zieglers</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/10/custommetadata.jpg" medium="image">
			<media:title type="html">CustomMetadata</media:title>
		</media:content>
	</item>
		<item>
		<title>Assigning Item Level Priviliges to SPListItem</title>
		<link>http://zieglers.wordpress.com/2009/10/06/assigning-item-level-priviliges-to-splistitem/</link>
		<comments>http://zieglers.wordpress.com/2009/10/06/assigning-item-level-priviliges-to-splistitem/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 20:45:31 +0000</pubDate>
		<dc:creator>zieglers</dc:creator>
				<category><![CDATA[IT Stuff]]></category>
		<category><![CDATA[MOSS & WSS 3.0]]></category>
		<category><![CDATA[BreakRoleInheritance]]></category>
		<category><![CDATA[Impersonate]]></category>
		<category><![CDATA[item level security]]></category>
		<category><![CDATA[RoleDefinitions]]></category>
		<category><![CDATA[SPRoleAssignment]]></category>
		<category><![CDATA[SPRoleDefinition]]></category>

		<guid isPermaLink="false">http://zieglers.wordpress.com/?p=389</guid>
		<description><![CDATA[
Sometimes you might wanna assign item level permissions to a list item instead of using Elevated Priviliges block throughout the whole code. This might happen in case you need to temporarily give a user higher priviliges than she has.
Typical example would be to provide a site reader exceptional functionality on a specific list item. In [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=389&subd=zieglers&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://zieglers.files.wordpress.com/2009/10/sppermissions.png"><img class="alignnone size-full wp-image-400" title="SPPermissions" src="http://zieglers.files.wordpress.com/2009/10/sppermissions.png?w=600&#038;h=425" alt="SPPermissions" width="600" height="425" /></a><a href="http://zieglers.files.wordpress.com/2009/10/spitemlevelpermissions.jpg"></a></p>
<p>Sometimes you might wanna assign item level permissions to a list item instead of using Elevated Priviliges block throughout the whole code. This might happen in case you need to temporarily give a user higher priviliges than she has.</p>
<p>Typical example would be to provide a site reader exceptional functionality on a specific list item. In this case you break role inheritance and give the permissions you want. Here is a little snippet for that:</p>
<p>======================================================================</p>
<p>RunWithElevatedPriv</p>
<p> &#8230;using SPSite&#8230;<br />
    &#8230;using SPWeb&#8230;</p>
<p><span style="color:#339966;"><strong><span style="color:#008000;">// Get current user obj</span></strong><br />
</span>SPUser user = SPContext.Current.Web.CurrentUser;<br />
<strong><span style="color:#008000;">// Get current user token</span></strong><br />
SPUserToken token = user.UserToken;<br />
<strong><span style="color:#008000;">// Get current user principal</span></strong><br />
SPPrincipal principal = (SPPrincipal)SPContext.Current.Web.CurrentUser;<br />
<strong><span style="color:#008000;">// Get current user role assignment</span></strong><br />
SPRoleAssignment RoleAssignment = new SPRoleAssignment(principal);<br />
<strong><span style="color:#008000;">// Get Your Custom Role definition</span></strong><br />
int SiteContributorId = -1;<br />
SPRoleDefinition RoleDefSiteContributor = new SPRoleDefinition();</p>
<p>foreach (SPRoleDefinition roleDef in web.RoleDefinitions)<br />
   <strong><span style="color:#008000;">// Find Your Custom Role Definition id</span></strong><br />
   if (roleDef.Name == &#8220;Your Custom Role Name&#8221;)<br />
      SiteContributorId = roleDef.Id;</p>
<p>if (SiteContributorId != -1) {<br />
   RoleDefSiteContributor = web.RoleDefinitions.GetById(SiteContributorId);<br />
   <strong><span style="color:#008000;">// Add Your Custom Role to role assignments</span></strong><br />
   RoleAssignment.RoleDefinitionBindings.Add(RoleDefSiteContributor);<br />
}</p>
<p>if (!impersonatedListItem.HasUniqueRoleAssignments)<br />
   <span style="color:#008000;"><strong>// Break role inheritance</strong><br />
</span>   impersonatedListItem.BreakRoleInheritance(true);</p>
<p><span style="color:#008000;"><strong>// Add Your Custom Role assignment to list item<br />
</strong></span>impersonatedListItem.RoleAssignments.Add(RoleAssignment);</p>
<p><strong><span style="color:#008000;"> // Update changes</span> </strong><br />
impersonatedListItem.Update(); </p>
<p>   &#8230;close using SPWeb&#8230;<br />
&#8230;close using SPSite&#8230;</p>
<p>======================================================================</p>
<p>zieglers</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zieglers.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zieglers.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zieglers.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zieglers.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zieglers.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zieglers.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zieglers.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zieglers.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zieglers.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zieglers.wordpress.com/389/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=389&subd=zieglers&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zieglers.wordpress.com/2009/10/06/assigning-item-level-priviliges-to-splistitem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/525279c5a6d061fb9459d6ae64cb9b52?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">zieglers</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/10/sppermissions.png" medium="image">
			<media:title type="html">SPPermissions</media:title>
		</media:content>
	</item>
		<item>
		<title>Document Library Search Web Part (Optional)</title>
		<link>http://zieglers.wordpress.com/2009/09/13/document-library-search-web-part-optional/</link>
		<comments>http://zieglers.wordpress.com/2009/09/13/document-library-search-web-part-optional/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 19:15:13 +0000</pubDate>
		<dc:creator>zieglers</dc:creator>
				<category><![CDATA[IT Stuff]]></category>
		<category><![CDATA[MOSS & WSS 3.0]]></category>
		<category><![CDATA[bound to ListName]]></category>
		<category><![CDATA[filter parameters]]></category>
		<category><![CDATA[recursive]]></category>
		<category><![CDATA[scope]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[SPDataSource]]></category>

		<guid isPermaLink="false">http://zieglers.wordpress.com/?p=380</guid>
		<description><![CDATA[This post contains the optional part of Document Library Search Web Part post: http://zieglers.wordpress.com/2009/09/08/document-library-search-web-part/
In this post, I&#8217;ll try to show,

How to bind a SharePoint document library to ListName instead of ListId,
How to modify SPDataSource, so that subsite document libraries can be searched recursively,
How to extend search scope to other columns by adding more parameters.

Binding a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=380&subd=zieglers&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://zieglers.files.wordpress.com/2009/09/snag-0015.jpg"></a>This post contains the optional part of <strong>Document Library Search Web Part </strong>post: <a href="http://zieglers.wordpress.com/2009/09/08/document-library-search-web-part/">http://zieglers.wordpress.com/2009/09/08/document-library-search-web-part/</a></p>
<p>In this post, I&#8217;ll try to show,</p>
<ul>
<li><strong>How to bind a SharePoint document library to ListName instead of ListId,</strong></li>
<li><strong>How to modify SPDataSource, so that subsite document libraries can be searched recursively,</strong></li>
<li><strong>How to extend search scope to other columns by adding more parameters.</strong></li>
</ul>
<p><strong><span style="text-decoration:underline;">Binding a SharePoint document library to ListName instead of ListId</span></strong></p>
<p>In order to do this, you can simply follow this post: <a href="http://blog.solanite.com/keith/Lists/Posts/Post.aspx?ID=3">http://blog.solanite.com/keith/Lists/Posts/Post.aspx?ID=3</a></p>
<p>Idea is very simple: Search web part definition for <strong>ListID</strong>, replace it <strong>ListName</strong>. Then look for GUID and replace it with the list name you want to bind to.</p>
<p>Replace ListID with ListName</p>
<p><a href="http://zieglers.files.wordpress.com/2009/09/snag-0013.jpg"><img class="alignnone size-full wp-image-382" title="Replace ListID" src="http://zieglers.files.wordpress.com/2009/09/snag-0013.jpg?w=367&#038;h=149" alt="Replace ListID" width="367" height="149" /></a></p>
<p>Replace GUID with list name you want (For our demo, list name was <strong>Documents</strong> in the previous post)</p>
<p><a href="http://zieglers.files.wordpress.com/2009/09/snag-0014.jpg"><img class="alignnone size-full wp-image-383" title="List GUID" src="http://zieglers.files.wordpress.com/2009/09/snag-0014.jpg?w=546&#038;h=95" alt="List GUID" width="546" height="95" /></a></p>
<p><a href="http://zieglers.files.wordpress.com/2009/09/snag-0015.jpg"><img title="Replace ListName" src="http://zieglers.files.wordpress.com/2009/09/snag-0015.jpg?w=386&#038;h=149" alt="Replace ListName" width="386" height="149" /></a></p>
<p><strong><span style="text-decoration:underline;">Note: </span></strong>In some cases, there might be brackets around GUID value. If this is the case, make sure your list name is not in brackets after you perform replace operation.</p>
<p>That&#8217;s it. Now, your data view web part is bound to ListName instead of ListID.</p>
<p><strong><span style="text-decoration:underline;">Modifying SPDataSource so that subsite document libraries can be searched recursively</span></strong></p>
<p>to be continued.</p>
<p>zieglers</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zieglers.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zieglers.wordpress.com/380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zieglers.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zieglers.wordpress.com/380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zieglers.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zieglers.wordpress.com/380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zieglers.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zieglers.wordpress.com/380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zieglers.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zieglers.wordpress.com/380/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=380&subd=zieglers&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zieglers.wordpress.com/2009/09/13/document-library-search-web-part-optional/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/525279c5a6d061fb9459d6ae64cb9b52?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">zieglers</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/09/snag-0013.jpg" medium="image">
			<media:title type="html">Replace ListID</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/09/snag-0014.jpg" medium="image">
			<media:title type="html">List GUID</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/09/snag-0015.jpg" medium="image">
			<media:title type="html">Replace ListName</media:title>
		</media:content>
	</item>
		<item>
		<title>Document Library Search Web Part</title>
		<link>http://zieglers.wordpress.com/2009/09/08/document-library-search-web-part/</link>
		<comments>http://zieglers.wordpress.com/2009/09/08/document-library-search-web-part/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 19:36:46 +0000</pubDate>
		<dc:creator>zieglers</dc:creator>
				<category><![CDATA[IT Stuff]]></category>
		<category><![CDATA[MOSS & WSS 3.0]]></category>
		<category><![CDATA[Data View Web Part]]></category>
		<category><![CDATA[DataFormWebPart]]></category>
		<category><![CDATA[document library]]></category>
		<category><![CDATA[filtered data view]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[JIT]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://zieglers.wordpress.com/?p=339</guid>
		<description><![CDATA[In this post, I&#8217;ll try to show how to develop a web part which you can use to search document library contents by their field values. The advantage of this web part is that results will be displayed as you type in search box. Since AJAX configuration for SharePoint is not straigh-forward, I chose to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=339&subd=zieglers&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In this post, I&#8217;ll try to show how to develop a web part which you can use to search document library contents by their field values. The advantage of this web part is that results will be displayed as you type in search box. Since AJAX configuration for SharePoint is not straigh-forward, I chose to use some simple JavaScript functions instead.</p>
<p>By the end of the implementation, we are expecting to see a screen as follows:</p>
<p><a href="http://zieglers.files.wordpress.com/2009/09/snag-00001.jpg"><img class="alignnone size-full wp-image-343" title="Search Documents in Library" src="http://zieglers.files.wordpress.com/2009/09/snag-00001.jpg?w=376&#038;h=240" alt="Search Documents in Library" width="376" height="240" /></a></p>
<p>&#8216;Add&#8217; button is just an optional button in case you&#8217;d like to add searched documents into a gridview or something for further processing.</p>
<p>My next post will actually combine Search Document Library wp with Select and Stitch functionality, using which you can;</p>
<ol>
<li>Search Documents in one or more libraries (same type)</li>
<li>Select documents from those libraries</li>
<li>Stitch selected documents and convert to single PDF file.</li>
<li>Send stitched pdf file to Records Center.</li>
</ol>
<p>Enough intro so far, let&#8217;s get started!</p>
<p>Document Library Search  web part functionality can be divided into two parts: <strong>Just-in-Time Search</strong> functionality and <strong>Display Results </strong>functionality.</p>
<p>Although in the screenshot above it&#8217;s not obvious, actually results are displayed in an IFrame, whose source is our Results.aspx page. In order to give JIT effect, we&#8217;ll use javascript which will force Results.aspx in IFrame to display results each time user types something. This javascript along with search box can be hosted in a content editor web part.</p>
<p>For displaying results we&#8217;ll use filtered dataview webpart. This is going to be parameter based filtering. Each time user types something, that search criteria is going to be new filter parameter for dataview wp data source.</p>
<p>So, we can summarize use case as follows:</p>
<ul>
<li>User types in search criteria.</li>
<li>JavaScript code calls results page with new filter parameter.</li>
<li>Results page displays filtered results.</li>
</ul>
<p><strong><span style="text-decoration:underline;">CEWP for Search Box, JavaScipt and IFrame</span></strong></p>
<p>One of my previous posts can give you an idea re this part of the implementation. I&#8217;m providing link here just in case (subsection 10 &amp; 11): <a href="http://zieglers.wordpress.com/search-contacts-web-part/">http://zieglers.wordpress.com/search-contacts-web-part/</a></p>
<p>Idea is the same. Now add a new CEWP to any page you want and provide following source:</p>
<h6><span style="color:#0000ff;">&lt;div style=&#8221;height:400px;&#8221;&gt;</span></h6>
<h6><span style="color:#0000ff;">&lt;script type=&#8221;text/javascript&#8221;&gt;</span></h6>
<h6><span style="color:#0000ff;"> var timeout = -1;</span></h6>
<h6><span style="color:#0000ff;"> function searchChange(textbox) {</span></h6>
<h6><span style="color:#0000ff;">  var text = textbox.value;</span></h6>
<h6><span style="color:#0000ff;">  if (timeout != -1) clearTimeout(timeout);</span></h6>
<h6><span style="color:#0000ff;">  timeout = setTimeout(&#8220;commitSearch(&#8216;&#8221; + text + &#8220;&#8216;)&#8221;, 400);<br />
 }</span></h6>
<h6><span style="color:#0000ff;"> <br />
 function commitSearch(text) {<br />
  var frame = document.getElementById(&#8220;contactFrame&#8221;);<br />
                if (text == &#8220;&#8221;) frame.src = &#8220;Results.aspx?ReturnAll=Yes&#8221;;<br />
                else frame.src = &#8220;Results.aspx?s=&#8221; + text;<br />
 }</span></h6>
<h6><span style="color:#0000ff;">&lt;/script&gt;</span></h6>
<h6><span style="color:#0000ff;">&lt;div&gt;Use the text field below to search library contents by Title.&lt;/div&gt;</span></h6>
<h6><span style="color:#0000ff;"> &lt;input type=&#8221;text&#8221; style=&#8221;border:1px gray solid;&#8221; id=&#8221;contactSearch&#8221; name=&#8221;contactSearch&#8221; onkeyup=&#8221;searchChange(this);&#8221;/&gt;&lt;br/&gt;</span></h6>
<h6><span style="color:#0000ff;"> &lt;iframe id=&#8221;contactFrame&#8221; style=&#8221;width:100%; height: 100%; margin-bottom:-30px; padding-bottom:30px;&#8221; src=&#8221;Results.aspx?ReturnAll=Yes&#8221; scrolling=&#8221;auto&#8221; frameborder=&#8221;no&#8221; &gt;<br />
 &lt;/iframe&gt;</span></h6>
<h6><span style="color:#0000ff;">&lt;/div&gt;</span></h6>
<p> After doing so, you should be seeing smth as below:</p>
<p><a href="http://zieglers.files.wordpress.com/2009/09/snag-0001.jpg"><img class="alignnone size-full wp-image-349" title="Search CEWP" src="http://zieglers.files.wordpress.com/2009/09/snag-0001.jpg?w=425&#038;h=179" alt="Search CEWP" width="425" height="179" /></a></p>
<p>So far so good&#8230; Now we have CEWP to host search box and results iframe. Let&#8217;s move on to 2nd part of the implementation, which is filtered dataview web part hosted in Results.aspx and displayed in iframe.</p>
<p><strong><span style="text-decoration:underline;">Results page implementation</span></strong></p>
<p>As I also mentioned above, since this part is similar to the implementation I posted for search contacts web part (subsection 3 to 9): <a href="http://zieglers.wordpress.com/search-contacts-web-part/">http://zieglers.wordpress.com/search-contacts-web-part/</a> , you can take a look at it to have a general idea.</p>
<p>However, for this implementation we need more flexibility, such as <span style="text-decoration:underline;">binding dataview wp to ListName instead of ListId</span>. First we create an empty aspx file under root web.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/09/snag-0002.jpg"><img class="alignnone size-full wp-image-357" title="Create new aspx in SharePoint Designer" src="http://zieglers.files.wordpress.com/2009/09/snag-0002.jpg?w=251&#038;h=284" alt="Create new aspx in SharePoint Designer" width="251" height="284" /></a></p>
<p>Next, we open up Data Source Library and drag&amp;drop the document library which you want to perform search against. (In design mode of Untitled_1.aspx). I use <strong>Documents </strong>library for this demo.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/09/snag-0003.jpg"><img class="alignnone size-full wp-image-359" title="Drag drop Documents Library" src="http://zieglers.files.wordpress.com/2009/09/snag-0003.jpg?w=496&#038;h=112" alt="Drag drop Documents Library" width="496" height="112" /></a></p>
<p>Then, edit columns using Common Data View Tasks and add columns you want to be displayed in search results. I only have name, title, and modified columns for this demonstration.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/09/snag-0004.jpg"><img class="alignnone size-full wp-image-360" title="Edit Columns" src="http://zieglers.files.wordpress.com/2009/09/snag-0004.jpg?w=454&#038;h=415" alt="Edit Columns" width="454" height="415" /></a></p>
<p>Then, set display text if no matching items are found.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/09/snag-0005.jpg"><img class="alignnone size-full wp-image-361" title="Set Display Text" src="http://zieglers.files.wordpress.com/2009/09/snag-0005.jpg?w=433&#038;h=416" alt="Set Display Text" width="433" height="416" /></a></p>
<p>Finally, save you aspx file as <strong>Results.aspx</strong>.</p>
<p>Ok, so far let&#8217;s see what we have: Results.aspx page which is actually hosting a dataview web part for Documents library. No filter applied yet! So, it displays every document in Documents library now.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/09/snag-0006.jpg"><img class="alignnone size-full wp-image-365" title="All Documents Displayed" src="http://zieglers.files.wordpress.com/2009/09/snag-0006.jpg?w=464&#038;h=136" alt="All Documents Displayed" width="464" height="136" /></a></p>
<p>Our next step would be modifying this data view so that it displays results based on a filter parameter passed by user&#8217;s search box entry. Also we need to bind it to ListName instead of ListId, so that you don&#8217;t need to update ListId in Results.aspx each and every time you create a new document library.</p>
<p><strong><span style="text-decoration:underline;">Create filter parameter</span></strong></p>
<p>In order to add a parameter for filtering, go to Common Data View Tasks &gt; Parameter, and create a new parameter (Name: <strong>SearchParam</strong>, Parameter Source: <strong>QueryString</strong>, Query String Variable: <strong>s</strong>)</p>
<p> <a href="http://zieglers.files.wordpress.com/2009/09/snag-00093.jpg"><img class="alignnone size-full wp-image-371" title="SNAG-0009" src="http://zieglers.files.wordpress.com/2009/09/snag-00093.jpg?w=502&#038;h=176" alt="SNAG-0009" width="502" height="176" /></a></p>
<p><strong><span style="text-decoration:underline;">Create filter for DataFormWebPart</span></strong></p>
<p>Now we need to create filter based on parameter we just created. As for this demo, i&#8217;ll show how to create filter for Title column. In case you need, you can add more filters in a similar way. Again go to Common Data View Tasks &gt; Filter:</p>
<p>Add a new filter criteria with following values:</p>
<p>Field Name: <strong>Title</strong></p>
<p>Comparison: <strong>Contains</strong></p>
<p>Value: <strong>[SearchParam]</strong></p>
<p><a href="http://zieglers.files.wordpress.com/2009/09/snag-0010.jpg"><img class="alignnone size-full wp-image-374" title="Filter Title" src="http://zieglers.files.wordpress.com/2009/09/snag-0010.jpg?w=438&#038;h=111" alt="Filter Title" width="438" height="111" /></a></p>
<p>After doing so, you can see applied filter in Common Data View Tasks pane. Also, don&#8217;t forget to save your changes to Results.aspx.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/09/snag-0011.jpg"><img class="alignnone size-full wp-image-375" title="Filter Set" src="http://zieglers.files.wordpress.com/2009/09/snag-0011.jpg?w=265&#038;h=81" alt="Filter Set" width="265" height="81" /></a></p>
<p>That&#8217;s it!!! Now let&#8217;s go back to our CEWP and test it. I uploaded a test file, named TestDoc.doc and its title is My Test Document. As seen below, as i type &#8216;my&#8217; in search box, my test document is displayed in search results.</p>
<p>One thing to note is that we used <strong>&#8216;Contains&#8217; </strong>in our filter criteria clause. So, our search is more flexible. You can search based on any occurence of a search text.</p>
<p><a href="http://zieglers.files.wordpress.com/2009/09/snag-0012.jpg"><img class="alignnone size-full wp-image-377" title="Test Results" src="http://zieglers.files.wordpress.com/2009/09/snag-0012.jpg?w=498&#038;h=138" alt="Test Results" width="498" height="138" /></a></p>
<p>Give it a try and you&#8217;ll see that it&#8217;s very easy to implement, yet it has big potential of usage in different scenarios. In the next post, i&#8217;ll try to show how to bind this to a repeater control and have a document selection list based on search results.</p>
<p>zieglers</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zieglers.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zieglers.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zieglers.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zieglers.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zieglers.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zieglers.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zieglers.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zieglers.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zieglers.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zieglers.wordpress.com/339/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=339&subd=zieglers&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zieglers.wordpress.com/2009/09/08/document-library-search-web-part/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/525279c5a6d061fb9459d6ae64cb9b52?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">zieglers</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/09/snag-00001.jpg" medium="image">
			<media:title type="html">Search Documents in Library</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/09/snag-0001.jpg" medium="image">
			<media:title type="html">Search CEWP</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/09/snag-0002.jpg" medium="image">
			<media:title type="html">Create new aspx in SharePoint Designer</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/09/snag-0003.jpg" medium="image">
			<media:title type="html">Drag drop Documents Library</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/09/snag-0004.jpg" medium="image">
			<media:title type="html">Edit Columns</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/09/snag-0005.jpg" medium="image">
			<media:title type="html">Set Display Text</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/09/snag-0006.jpg" medium="image">
			<media:title type="html">All Documents Displayed</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/09/snag-00093.jpg" medium="image">
			<media:title type="html">SNAG-0009</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/09/snag-0010.jpg" medium="image">
			<media:title type="html">Filter Title</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/09/snag-0011.jpg" medium="image">
			<media:title type="html">Filter Set</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/09/snag-0012.jpg" medium="image">
			<media:title type="html">Test Results</media:title>
		</media:content>
	</item>
		<item>
		<title>SharePoint Alerts Export Import add-in Part – 2</title>
		<link>http://zieglers.wordpress.com/2009/06/05/sharepoint-alerts-export-import-add-in-part-%e2%80%93-2/</link>
		<comments>http://zieglers.wordpress.com/2009/06/05/sharepoint-alerts-export-import-add-in-part-%e2%80%93-2/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 19:58:14 +0000</pubDate>
		<dc:creator>zieglers</dc:creator>
				<category><![CDATA[IT Stuff]]></category>
		<category><![CDATA[MOSS & WSS 3.0]]></category>
		<category><![CDATA[12 hive]]></category>
		<category><![CDATA[Alerts]]></category>
		<category><![CDATA[Application Page]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Export]]></category>
		<category><![CDATA[Hello World]]></category>
		<category><![CDATA[Import]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[Test page]]></category>

		<guid isPermaLink="false">http://zieglers.wordpress.com/?p=314</guid>
		<description><![CDATA[In this second part of the article, I&#8217;ll mention implementation details of Alerts Export/Import add-in.
Most important decision I took as for implementation was not to use code-behind. Simply I coded everything within .aspx page. Why did I do so? Well, for couple of reasons.
Firstly, this allows faster development by avoiding building VS solution and then [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=314&subd=zieglers&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In this second part of the article, I&#8217;ll mention implementation details of Alerts Export/Import add-in.</p>
<p>Most important decision I took as for implementation was <strong><span style="text-decoration:underline;">not to use code-behind</span></strong>. Simply I coded everything within .aspx page. Why did I do so? Well, for couple of reasons.</p>
<p>Firstly, this allows faster development by avoiding building VS solution and then deploying the solution. A simple page refresh will force the page recompile. If you are developing <span style="color:#008000;">just</span> couple of application pages, I&#8217;d say don&#8217;t waste time by building a solution and deploying it each time code-behind changes. You&#8217;ll see coding in .aspx page is much faster. Make sure you know C# syntax well <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Secondly, no deployment at all. Since you are directly working on page in 12 hive ADMIN folder, once you save your changes, they are already there and page will be recompiled next time you request the page.</p>
<p>Of course, taking this development approach or not is totally up to you. But if you haven&#8217;t tried yet, I&#8217;d say give it a try and you&#8217;ll see that your C# syntax skills will improve drastically.</p>
<p>Ok, Let&#8217;s get started!!!</p>
<h4>1. First we need a blank &#8216;Hello World&#8217; application page.</h4>
<p>Since we are developing a blank application page for Central Administration Site, masterpage of our application page must be &#8216;<strong>admin.master</strong>&#8216;. Also there are some specific SharePoint controls that will be used, so those must be registered as well.</p>
<p>Now, open up NotePad and create an empty text file and save it as <strong>Test.aspx</strong>.</p>
<p><span style="text-decoration:underline;">a. Adding required assembly and SharePoint control references</span></p>
<p>Include following snippet to Test.aspx.</p>
<h6><span style="color:#0000ff;">&lt;%@ Assembly Name=&#8221;Microsoft.SharePoint.ApplicationPages.Administration, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&#8221;%&gt;<br />
&lt;%@ Page Language=&#8221;C#&#8221; AutoEventWireup=&#8221;true&#8221; Inherits=&#8221;Microsoft.SharePoint.ApplicationPages.GlobalAdminPageBase&#8221; MasterPageFile=&#8221;~/_admin/admin.master&#8221; %&gt;<br />
&lt;%@ Import Namespace=&#8221;System.Net&#8221; %&gt;<br />
&lt;%@ Import Namespace=&#8221;Microsoft.SharePoint&#8221; %&gt;<br />
&lt;%@ Import Namespace=&#8221;Microsoft.SharePoint.Administration&#8221; %&gt;<br />
&lt;%@ Import Namespace=&#8221;Microsoft.SharePoint.Utilities&#8221; %&gt;<br />
&lt;%@ Import Namespace=&#8221;Microsoft.SharePoint.ApplicationPages&#8221; %&gt;<br />
&lt;%@ Register Tagprefix=&#8221;SharePoint&#8221; Namespace=&#8221;Microsoft.SharePoint.WebControls&#8221; Assembly=&#8221;Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&#8221; %&gt;<br />
&lt;%@ Register Tagprefix=&#8221;Utilities&#8221; Namespace=&#8221;Microsoft.SharePoint.Utilities&#8221; Assembly=&#8221;Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&#8221; %&gt;<br />
&lt;%@ Register TagPrefix=&#8221;wssawc&#8221; Namespace=&#8221;Microsoft.SharePoint.WebControls&#8221; Assembly=&#8221;Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&#8221;%&gt;<br />
&lt;%@ Register TagPrefix=&#8221;wssuc&#8221; TagName=&#8221;ToolBar&#8221; src=&#8221;~/_controltemplates/ToolBar.ascx&#8221; %&gt;<br />
&lt;%@ Register TagPrefix=&#8221;wssuc&#8221; TagName=&#8221;InputFormSection&#8221; src=&#8221;~/_controltemplates/InputFormSection.ascx&#8221; %&gt;<br />
&lt;%@ Register TagPrefix=&#8221;wssuc&#8221; TagName=&#8221;InputFormControl&#8221; src=&#8221;~/_controltemplates/InputFormControl.ascx&#8221; %&gt;<br />
&lt;%@ Register TagPrefix=&#8221;wssuc&#8221; TagName=&#8221;ButtonSection&#8221; src=&#8221;~/_controltemplates/ButtonSection.ascx&#8221; %&gt; </span></h6>
<p><span style="text-decoration:underline;">b. Adding ContentPlaceHolders</span></p>
<p>Include <strong>PlaceHolderPageTitle</strong> and <strong>PlaceHolderPageTitleInTitleArea </strong>content placeholders. Former determines browser page title, latter determines application page title.</p>
<h6><span style="color:#0000ff;"> &lt;asp:Content ID=&#8221;PageTitle&#8221; runat=&#8221;server&#8221; ContentPlaceHolderID=&#8221;PlaceHolderPageTitle&#8221;&gt;<br />
    Test Page Title &#8211; AAA<br />
&lt;/asp:Content&gt;<br />
&lt;asp:Content ID=&#8221;PageTitleInTitleArea&#8221; runat=&#8221;server&#8221; ContentPlaceHolderID=&#8221;PlaceHolderPageTitleInTitleArea&#8221;&gt;<br />
    Test Page Title &#8211; BBB<br />
&lt;/asp:Content&gt;</span></h6>
<p><span style="text-decoration:underline;">c. Adding Main PlaceHolder</span></p>
<p>Include <strong>PlaceHolderMain </strong>content placeholder. This placeholder will hold all controls in the main page area. For our test page we only include an AP.NET Literal control to display HelloWorld message.</p>
<h6><span style="color:#0000ff;">&lt;asp:Content ID=&#8221;Main&#8221; ContentPlaceHolderID=&#8221;PlaceHolderMain&#8221; runat=&#8221;server&#8221;&gt;</span></h6>
<h6><span style="color:#0000ff;"> &lt;!&#8211; Use a ASP.NET Literal Control to display messages &#8211;&gt;<br />
 &lt;asp:Literal ID=&#8221;litMessages&#8221; runat=&#8221;server&#8221; /&gt;</span></h6>
<h6><span style="color:#0000ff;">&lt;/asp:Content&gt;</span></h6>
<p><span style="text-decoration:underline;">d. Adding code for page logic</span></p>
<p>Now we can start writing code for our test page. Our C# code will be in between <strong>script </strong>tags of the page. All we need to do is to assign &#8216;Hello World&#8217; to messages literal control in PageLoad event.</p>
<h6><span style="color:#0000ff;">&lt;script runat=&#8221;server&#8221;&gt;<br />
   <br />
    protected override void OnLoad(EventArgs e)<br />
    {</span></h6>
<h6><span style="color:#0000ff;">        //****************************************<br />
        // Validate the page request to avoid<br />
        // any malicious posts<br />
        if (Request.HttpMethod == &#8220;POST&#8221;)<br />
            SPUtility.ValidateFormDigest();</span></h6>
<h6><span style="color:#0000ff;">        //****************************************<br />
        // Validate the page request to avoid<br />
        // any malicious posts<br />
        if (Request.HttpMethod == &#8220;POST&#8221;)<br />
            SPUtility.ValidateFormDigest();</span></h6>
<h6><span style="color:#0000ff;">        //****************************************<br />
        // Initialize the controls on the page<br />
        // if its not a PostBack request<br />
        if (!(Page.IsPostBack))<br />
        {<br />
            litMessages.Text = &#8220;Hello World!&#8221;;</span></h6>
<h6><span style="color:#0000ff;">        } // end &#8211; IsPostPack</span></h6>
<h6><span style="color:#0000ff;">    }<br />
   <br />
&lt;/script&gt;</span></h6>
<p><span style="text-decoration:underline;">e. Copy Test.aspx to /12/ADMIN/ folder.</span></p>
<p>That&#8217;s all for our Test application page. No deployment, no building solution.. All we need to do is to copy Test.aspx to ~/12/ADMIN/ folder. Now open your browser. Go to Central Admin site, and test your Test.aspx. (http://yourservername:centraladminportnumber/_admin/Test.aspx)</p>
<p>You can download Test.aspx application page here: <a href="http://zieglers.files.wordpress.com/2009/06/testaspxcode.doc">TestASPXCode</a></p>
<h4>2. Adding UI controls &#8211; SharePoint Web Application Selector</h4>
<p>Now we have a blank application page, we can start adding UI elements one by one. It&#8217;s always a good practice to keep logically related controls in a panel. Since providing a web application is the only input for export alerts operation, we&#8217;ll have only SharePoint Web Application selector control and submit buttons on ExportAlerts page, and will keep those in an input panel as follows.</p>
<p>Add the following snippet in <strong>PlaceHolderMain</strong> below litMessages literal control.</p>
<h6><span style="color:#0000ff;"><span style="color:#008000;">&lt;!&#8211; Use a ASP.NET Panel Control to show or hide the form from code &#8211;&gt;</span><br />
 &lt;asp:Panel ID=&#8221;inputForm&#8221; runat=&#8221;server&#8221;&gt;<br />
     &lt;table border=&#8221;0&#8243; cellspacing=&#8221;0&#8243; cellpadding=&#8221;0&#8243; width=&#8221;100%&#8221;&gt;<br />
        &lt;tr&gt;<br />
          &lt;td&gt;  <br />
         <br />
             <span style="color:#008000;">&lt;!&#8211; *********************************************************<br />
                 DISPLAY THE WEB APPLICATION SELECTOR<br />
                 USING THE InputFormSecton AND WebApplicationSelector CONTROLS.<br />
                 <br />
                 THE TITLE AND DESCRIPTION ARE SPECIFIED IN THE CORRESPONDING<br />
                 ATTRIBUTES OF THE InputFormSection CONTROL, WHILE THE CONTROLS<br />
                 THEMSELVES ARE PLACED INSIDE THE InputFormControl SECTION &#8211;&gt;<br />
</span>            &lt;wssuc:InputFormSection runat=&#8221;server&#8221;<br />
          Title=&#8221;Web Application&#8221;<br />
          Description=&#8221;Select a Web Application&#8221; &gt;<br />
                &lt;Template_InputFormControls&gt;<br />
                &lt;tr&gt;<br />
              &lt;td&gt;<br />
                    &lt;SharePoint:WebApplicationSelector id=&#8221;Selector&#8221; runat=&#8221;server&#8221;<br />
                      TypeLabelCssClass=&#8221;ms-listheaderlabel&#8221;<br />
                      AllowAdministrationWebApplication=&#8221;true&#8221; /&gt;<br />
                    &lt;/td&gt;<br />
          &lt;/tr&gt;<br />
                &lt;/Template_InputFormControls&gt;<br />
         &lt;/wssuc:InputFormSection&gt;        <br />
            <span style="color:#008000;">&lt;!&#8211; ********************************************************** &#8211;&gt;<br />
           <br />
         &lt;!&#8211; ****************************<br />
              OK AND CANCEL BUTTON SECTION &#8211;&gt;<br />
</span>         &lt;wssuc:ButtonSection runat=&#8221;server&#8221; TopButtons=&#8221;false&#8221; BottomSpacing=&#8221;5&#8243; ShowSectionLine=&#8221;true&#8221;&gt;<br />
          &lt;Template_Buttons&gt;<br />
           &lt;asp:Button UseSubmitBehavior=&#8221;false&#8221; runat=&#8221;server&#8221; OnClick=&#8221;BtnSubmit_Click&#8221; Text=&#8221;&lt;%$Resources:wss,multipages_okbutton_text%&gt;&#8221; id=&#8221;BtnSubmitBottom&#8221; accesskey=&#8221;&lt;%$Resources:wss,okbutton_accesskey%&gt;&#8221; Enabled=&#8221;true&#8221;/&gt;<br />
          &lt;/Template_Buttons&gt;<br />
         &lt;/wssuc:ButtonSection&gt;<br />
        <span style="color:#008000;"> &lt;!&#8211; **************************** &#8211;&gt;<br />
</span>        <br />
       &lt;/td&gt;<br />
     &lt;/tr&gt;<br />
        &lt;/table&gt;<br />
    &lt;/asp:Panel&gt;</span></h6>
<p>One thing to note here is that we need to provide code for <strong>ButtonClick</strong> event. So add the following to script section of the page.</p>
<h6>    <span style="color:#008000;">//*************************************************************<br />
    // This method is called when the user clicks the &#8220;OK&#8221; button<br />
    // to activate the site feature package.<br />
</span>    <span style="color:#0000ff;">protected void BtnSubmit_Click(object sender, EventArgs e)<br />
    {<br />
        <span style="color:#008000;">// Your code here<br />
</span>    }</span></h6>
<p> So far so good! If you have done everything w/o any mistakes your page should look as follows.</p>
<p> <a href="http://zieglers.files.wordpress.com/2009/06/alerts-4.jpg"><img class="alignnone size-full wp-image-325" title="Alerts-4" src="http://zieglers.files.wordpress.com/2009/06/alerts-4.jpg?w=684&#038;h=201" alt="Alerts-4" width="684" height="201" /></a></p>
<h4>3. Adding &#8216;Export Alerts&#8217; logic.</h4>
<p>We have our application page. We have our UI elements (web application selector and submit buttons). Now it&#8217;s time to get our hands dirty! All &#8216;Export Alerts&#8217; logic will be implemented in <strong>BtnSubmit_Click </strong>event.</p>
<p> Ok, at this point let&#8217;s take a look at our design details once again:</p>
<p><strong>A. Crawl whole web application</strong>, which means <strong>loop through </strong><span style="text-decoration:underline;">all site collections</span> and <span style="text-decoration:underline;">all webs</span> underneath.</p>
<p><strong>foreach</strong> &#8211;&gt; Site Collection in WebApplication</p>
<p>   <strong>foreach</strong> &#8211;&gt; Web object in Site Collection</p>
<p>      <strong>foreach</strong> &#8211;&gt; alert in Alert Collection of web</p>
<p>               <strong>Export alert details</strong> to xml file.</p>
<p><strong>B. Xml helper functions</strong>. We need helper functions to get alert property details and write them in Alerts Export xml file in a structured way. Those functions are:</p>
<p><strong>CreateXmlDocument</strong>, <strong>AddChildElement</strong>, <strong>StringValueOfObject</strong>, <strong>StringValueOfAlerts</strong></p>
<p>I&#8217;m not going to mention details about those helper functions since they are out of our scope. I also didn&#8217;t spend time on them to reflect a better coding practice. As a result they are very straight-forward and represent a trivial functional coding. Be my guest if you want to refactor them and make them look better <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>C. Output messages</strong></p>
<p>I haven&#8217;t provided logging functionality for export alerts, since exported xml file sort of acts as log itself. Only we need to display some statistics to UI such as <span style="text-decoration:underline;">number of exported alerts</span>, <span style="text-decoration:underline;">urls of crawled site collections and webs</span>, <span style="text-decoration:underline;">execution time</span>, &#8230; etc. For this purpose we&#8217;ll have only one string variable, namely <strong>strMessages</strong>. We&#8217;ll append any sort of execution messages to this string and then eventually assign it to <strong>litMessages</strong>.</p>
<p><span style="text-decoration:underline;">Here is the <span style="font-size:x-small;"><strong>BtnSubmit_Click</strong> code:</span></span></p>
<h6>    <span style="color:#0000ff;"><span style="color:#008000;">//*************************************************************<br />
    // This method is called when the user clicks the &#8220;OK&#8221; button<br />
    // to export alerts of a selected web application.<br />
</span>    protected void BtnSubmit_Click(object sender, EventArgs e)<br />
    {<br />
        <span style="color:#008000;">//Prepare a string object to display the result<br />
        //of the export alerts operation for each site<br />
</span>        string strMessages = &#8220;&#8221;;</span></h6>
<h6><span style="color:#0000ff;">      <span style="color:#008000;">  // Hide input panel<br />
</span>        inputForm.Visible = false;<br />
       <br />
        try<br />
        {<br />
            <span style="color:#008000;">// Execution &#8217;start&#8217; and &#8216;finish&#8217; time variables<br />
</span>            DateTime start = DateTime.Now;<br />
            DateTime finish = DateTime.Now;</span></h6>
<h6><span style="color:#0000ff;">            <span style="color:#008000;">// Construct Exported Alerts Xml file name<br />
            // Format: ddmmyyyy_hhmmss.xml<br />
</span>            alertsFileName = DateTime.Today.Day.ToString() +<br />
                                    DateTime.Today.Month + DateTime.Today.Year.ToString() +<br />
                                    &#8220;_&#8221; +<br />
                                    DateTime.Now.Hour.ToString() +<br />
                                    DateTime.Now.Minute.ToString() +<br />
                                    DateTime.Now.Second.ToString() +<br />
                                    &#8220;.xml&#8221;;<br />
               <br />
            <span style="color:#008000;">// add all the alert info to an XML document<br />
</span>            System.Xml.XmlDocument Document = CreateXmlDocument();</span></h6>
<h6><span style="color:#0000ff;">            <span style="color:#008000;">//Iterate through each of the site collections<br />
            //in the selected web applications<br />
</span>            foreach (SPSite site in Selector.CurrentItem.Sites)<br />
            {<br />
                <span style="color:#008000;">//Disable the CatchAccessDeniedException<br />
                //of the site collection to avoid being redirected<br />
                //to the &#8220;Access Denied&#8221; page if access is denied.<br />
</span>                site.CatchAccessDeniedException = false;</span></h6>
<h6><span style="color:#0000ff;">                <span style="color:#008000;">// Display site url<br />
</span>                strMessages += &#8220;&lt;br /&gt;&lt;b&gt; === Exporting Alerts for site: &#8221; + site.Url + &#8221; === &lt;/b&gt;&lt;br /&gt;&#8221;;</span></h6>
<h6><span style="color:#0000ff;">                <span style="color:#008000;">//Iterate through each site in the site collection<br />
</span>                foreach (SPWeb web in site.AllWebs)<br />
                {<br />
                    <span style="color:#008000;">// Get all users of the web<br />
</span>                    SPUserCollection collUsers = web.SiteUsers;</span></h6>
<h6><span style="color:#0000ff;">                   <span style="color:#008000;"> // Check if there are any alerts to be exported for this web object<br />
</span>                    if (web.Alerts.Count &gt; 0)<br />
                    {<br />
                        <span style="color:#008000;">// create the alerts root node<br />
</span>                        System.Xml.XmlElement AlertsNode = AddChildElement(Document.DocumentElement, &#8220;Alerts&#8221;);</span></h6>
<h6><span style="color:#0000ff;">                       <span style="color:#008000;"> // Add Web Url attribute<br />
</span>                        System.Xml.XmlAttribute NewAttribute = AlertsNode.OwnerDocument.CreateAttribute(&#8220;WebUrl&#8221;);<br />
                        AlertsNode.Attributes.Append(NewAttribute);<br />
                        NewAttribute.InnerText = Convert.ToString(web.Url);</span></h6>
<h6><span style="color:#0000ff;">                       <span style="color:#008000;"> // Add IsRootWeb attribute</span><br />
                        NewAttribute = AlertsNode.OwnerDocument.CreateAttribute(&#8220;IsRootWeb&#8221;);<br />
                        AlertsNode.Attributes.Append(NewAttribute);</span></h6>
<h6><span style="color:#0000ff;">                        <span style="color:#008000;">// Display web object info<br />
</span>                        strMessages += &#8220;&lt;br /&gt; + Web : &#8221; + web.Url + &#8221; + &lt;br /&gt;&#8221;;</span></h6>
<h6><span style="color:#0000ff;">                        <span style="color:#008000;">// Save Alerts to xml<br />
                        // iterate through all the alerts for every user of a site<br />
</span>                        foreach (SPUser oUser in collUsers)<br />
                        {<br />
                            SPAlertCollection collAlerts = oUser.Alerts;</span></h6>
<h6><span style="color:#0000ff;">                            if (oUser.Alerts.Count &gt; 0)<br />
                            {<br />
                                <span style="color:#008000;">// Check if this web is a root web or not<br />
</span>                                if (site.Url == web.Url)<br />
                                    NewAttribute.InnerText = &#8220;true&#8221;;<br />
                                else<br />
                                    NewAttribute.InnerText = &#8220;false&#8221;;</span></h6>
<h6><span style="color:#0000ff;">                                foreach (SPAlert oAlert in collAlerts)<br />
                                {<br />
                                    <span style="color:#008000;">// Get alert properties<br />
</span>                                    StringValueOfAlerts(AlertsNode, oAlert);<br />
                                    AlertCount++;</span></h6>
<h6><span style="color:#0000ff;">                                } // end &#8211; foreach SPAlert</span></h6>
<h6><span style="color:#0000ff;">                            } // end -if</span></h6>
<h6><span style="color:#0000ff;">                        } // end &#8211; foreach SPUser<br />
                       <br />
                    } // end &#8211; if AlertsCount</span></h6>
<h6><span style="color:#0000ff;">                } // end &#8211; foreach SPWeb</span></h6>
<h6><span style="color:#0000ff;">                port = site.Port;<br />
                AlertsFile = AlertsDir + port.ToString() + &#8220;_&#8221; + alertsFileName;</span></h6>
<h6><span style="color:#0000ff;">                <span style="color:#008000;">//Allow the site collection to continue handling<br />
                //access denied exceptions<br />
</span>                site.CatchAccessDeniedException = true;<br />
               <br />
            } // end &#8211; foreach SPSite</span></h6>
<h6><span style="color:#0000ff;">            <span style="color:#008000;">// Save Alerts Export file<br />
</span>            Document.Save(AlertsFile);</span></h6>
<h6><span style="color:#0000ff;">            strMessages += &#8220;&lt;br /&gt; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &lt;br /&gt;&#8221;;<br />
            strMessages += &#8220;&lt;br /&gt;&lt;b&gt;&#8221; + AlertCount.ToString() + &#8220;&lt;/b&gt; alerts &lt;b&gt;&lt;font color=green&gt;successfully&lt;/font&gt;&lt;/b&gt; exported for web application: &lt;b&gt;&#8221; + Selector.CurrentName + &#8220;&lt;/b&gt;&lt;br /&gt;&#8221;;<br />
            strMessages += &#8220;&lt;br /&gt;Export file: &lt;b&gt;&#8221; + port.ToString() + &#8220;_&#8221; + alertsFileName + &#8220;&lt;/b&gt;&lt;br /&gt;&#8221;;</span></h6>
<h6><span style="color:#0000ff;">            finish = DateTime.Now;<br />
            TimeSpan elapsedTime = finish.Subtract(start);<br />
            strMessages += &#8220;&lt;br /&gt; Exported in &lt;b&gt;&#8221; + elapsedTime.Minutes.ToString() + &#8220;&lt;/b&gt; minute(s) and &lt;b&gt;&#8221; + elapsedTime.Seconds.ToString() + &#8220;&lt;/b&gt; seconds and &lt;b&gt;&#8221; + elapsedTime.Milliseconds.ToString() + &#8220;&lt;/b&gt; miliseconds &lt;br /&gt;&#8221;;</span></h6>
<h6><span style="color:#0000ff;">           <br />
        }<br />
        catch (Exception AlertsSaveException)<br />
        {<br />
            <span style="color:#008000;">//if an error occurs during export alerts operation;<br />
            //capture the message to display it to the user<br />
            //after iterating through all the sites<br />
</span>            strMessages += &#8220;&lt;br /&gt;Alerts Save Error: &#8221; + AlertsSaveException.Message + &#8220;&lt;br /&gt;&#8221;;<br />
        }</span></h6>
<h6><span style="color:#0000ff;">        <span style="color:#008000;">// Display messages if there are any<br />
</span>        litMessages.Text = strMessages;<br />
       <br />
    }</span></h6>
<p>If you are not interested in details of &#8216;<strong>Export Alerts</strong>&#8216; and just want to use it as soon as possible, you can download &#8220;<strong>AlertsSave.aspx</strong>&#8221; from this link: <a href="http://zieglers.files.wordpress.com/2009/06/alertssaveaspx.doc">AlertsSaveASPX</a></p>
<p>(Copy and paste word doc contents in a text file and rename it to AlertsSave.aspx. Then copy it to ~/12/ADMIN/ folder.)</p>
<p>Please let me know if you run into any difficulties while trying to implement/run &#8216;export alerts&#8217; functionality..</p>
<p>zieglers</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zieglers.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zieglers.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zieglers.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zieglers.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zieglers.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zieglers.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zieglers.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zieglers.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zieglers.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zieglers.wordpress.com/314/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zieglers.wordpress.com&blog=217916&post=314&subd=zieglers&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zieglers.wordpress.com/2009/06/05/sharepoint-alerts-export-import-add-in-part-%e2%80%93-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/525279c5a6d061fb9459d6ae64cb9b52?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">zieglers</media:title>
		</media:content>

		<media:content url="http://zieglers.files.wordpress.com/2009/06/alerts-4.jpg" medium="image">
			<media:title type="html">Alerts-4</media:title>
		</media:content>
	</item>
	</channel>
</rss>