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

<channel>
	<title>SharePoint 2007-2010</title>
	<atom:link href="http://www.mg2.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mg2.de</link>
	<description>der inoffizielle Blog über die neueste Microsoft Office Generation</description>
	<lastBuildDate>Fri, 05 Mar 2010 09:18:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Bing Maps Routen und Entfernungsberechnung</title>
		<link>http://www.mg2.de/sonstiges/bing-maps-routen-und-entfernungsberechnung/</link>
		<comments>http://www.mg2.de/sonstiges/bing-maps-routen-und-entfernungsberechnung/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 09:17:06 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Sonstiges]]></category>

		<guid isPermaLink="false">http://www.mg2.de/?p=112</guid>
		<description><![CDATA[Ein kleines Beispiel wie mit Hilfe von Bing Maps Routeninformationen berechnet und dargestellt werden k&#246;nnen. Au&#223;erdem ganz hilfreich die Entfernungsberechnung der Luftlinie mit Hilfe von Javascript.
]]></description>
			<content:encoded><![CDATA[<p>Ein <a href="http://www.mg2.de/map.html">kleines Beispiel</a> wie mit Hilfe von Bing Maps Routeninformationen berechnet und dargestellt werden k&#246;nnen. Au&#223;erdem ganz hilfreich die Entfernungsberechnung der Luftlinie mit Hilfe von Javascript.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/sonstiges/bing-maps-routen-und-entfernungsberechnung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 &#8211; das muss man jetzt schon wissen</title>
		<link>http://www.mg2.de/sharepoint-2010/sharepoint-2010-das-muss-man-jetzt-schon-wissen/</link>
		<comments>http://www.mg2.de/sharepoint-2010/sharepoint-2010-das-muss-man-jetzt-schon-wissen/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 09:50:38 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://www.mg2.de/?p=101</guid>
		<description><![CDATA[Nachdem die erste Beta-Version von SharePoint 2010 auf MSDN zum Download f&#252;r alle bereit steht gibt es nat&#252;rlich jede Menge Information, Dokumentation und Veranstaltungen zu den Neuerungen und Highlights der neuesten SharePoint-Generation. Hier ein kleiner Auszug und &#220;berblick, was Sie in den n&#228;chsten Wochen bis zur endg&#252;ltigen Ver&#246;ffentlichung nicht verpassen d&#252;rfen:






Der Downloadlink f&#252;r die Beta-Version [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem die erste Beta-Version von SharePoint 2010 auf MSDN zum Download f&#252;r alle bereit steht gibt es nat&#252;rlich jede Menge Information, Dokumentation und Veranstaltungen zu den Neuerungen und Highlights der neuesten SharePoint-Generation. Hier ein kleiner Auszug und &#220;berblick, was Sie in den n&#228;chsten Wochen bis zur endg&#252;ltigen Ver&#246;ffentlichung nicht verpassen d&#252;rfen:</p>
<p><span id="more-101"></span><br />
<div style="margin:7px; text-align:center;">
<script type="text/javascript"><!--
google_ad_client = "pub-8984875651872825";
google_alternate_color = "FAFCFF";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
//2007-01-14: mg2
google_ad_channel = "9868614297";
google_color_border = "B0B0B0";
google_color_bg = "FAFCFF";
google_color_link = "0074BC";
google_color_text = "000000";
google_color_url = "0074BC";
//--></script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div></p>
<p>Der Downloadlink f&#252;r die Beta-Version von SharePoint 2010 (und weitere Beta-Versionen wie Office 2010): <a href="http://www.microsoft.com/2010" target="_blank">http://www.microsoft.com/2010</a></p>
<p>Die wichtigsten Online-Ressourcen sind dagegen f&#252;r alle einsehbar:</p>
<ul>
<li> Alle Neuerungen bzw. Verbesserungen (momentan leider nur englischsprachig) sind zu finden unter: <a href="http://" target="_blank">http://technet.microsoft.com/en-us/sharepoint/ee518662.aspx</a></li>
<li>F&#252;r Entwickler am interessantesten nat&#252;rlich das SDK unter: <a href="http://msdn.microsoft.com/en-us/library/ee557253%28office.14%29.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/ee557253(office.14).aspx</a></li>
<li>Nicht zu verachten sind auch die Hard- und Softwarevoraussetzungen f&#252;r den SharePoint Server 2010: <a href="http://technet.microsoft.com/en-us/library/cc262485%28office.14%29.aspx" target="_blank">http://technet.microsoft.com/en-us/library/cc262485(office.14).aspx</a>. Hier gilt es anzumerken, dass SharePoint 2010 nur noch unter 64-Bit Systemen von Microsoft l&#228;uft, daf&#252;r jetzt aber auch ohne Hilfsmittel unter Windows Vista bzw. Windows 7 x64 (nat&#252;rlich nur f&#252;r Entwicklungszwecke) installierbar ist. Leider gibt es f&#252;r Virtual PC (noch) keine M&#246;glichkeit, x64-Gastsystem zum Laufen zu bringen, was eine effiziente Entwicklungs- und Demoumgebung unter diesen Voraussetzungen schwierig erscheinen l&#228;sst. Hier empfiehlt Microsoft das <em>&#8220;Boot-to-VHD Feature von Windows 7 bzw. Windows 2008 R2 Server zu nutzen</em>&#8220;. Wem das zu umst&#228;ndlich ist, sollte auf Konkurrenzprodukte aus dem Hause VMWare zur&#252;ckgreifen, die schon seit l&#228;ngerem 64-Bit Gastsysteme unterst&#252;tzen.</li>
</ul>
<p>Interessante Vortr&#228;ge und spannende Live-Demos gibt es auf den kommenden Konferenzen zum Thema SharePoint:</p>
<ul>
<li>Den Anfang macht der <a href="http://www.hlmc.de/sharepoint/index.html" target="_blank">SharePoint iX-Day</a> am 01.12. bzw. 02.12.2009 in D&#252;sseldorf. Der erste Tag bietet hierbei mit Workshops und anschlie&#223;enden Pr&#252;fungen eine gute M&#246;glichkeit, eine SharePoint-Zertifizierung zu erlangen. Am zweiten Tag folgen dann in drei Sessions viele Pr&#228;sentationen und M&#246;glichkeiten zum Austausch unter SharePoint-Interessierten und -Experten. Herausheben m&#246;chte ich den Vortrag von <a href="https://www.xing.com/profile/Steffen_Inderwies" target="_blank">Steffen Inderwies</a> zum Thema &#8220;<em>Perlen auf Codeplex &#8211; Mit freien Webparts das Leben vereinfachen</em>&#8220;. Dieser Fachvortag richtet sich sowohl an Einsteiger als auch an SharePoint-Erfahrene, die ihre L&#246;sung mit kostenfreien Erweiterung um n&#252;tzliche Anwendungen bereichern wollen. Weitere Informationen finden Sie auch unter der Firmen-Homepage: <a href="http://www.consulting-business-solutions.de/sharepoint-2010-blog-und-sharepoint-ix-days-duesseldorf.html" target="_blank">http://www.consulting-business-solutions.de/sharepoint-2010-blog-und-sharepoint-ix-days-duesseldorf.html</a>.</li>
<li>Eine Stufe gr&#246;&#223;er d&#252;rfte dann wieder die offizielle <a href="http://www.sharepointkonferenz.de/" target="_blank">SharePoint-Konferenz</a> am 24. bzw. 25. Februar 2010 in M&#252;nchen ausfallen wenn mehr als 80 Sprecher in &#252;ber 120 Vortr&#228;gen &#252;ber Microsoft-Technologien referieren. Wir d&#252;rfen gespannt sein!</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/sharepoint-2010/sharepoint-2010-das-muss-man-jetzt-schon-wissen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In Outlook 2007 verkn&#252;pfte SharePoint-Listen lassen sich nicht l&#246;schen</title>
		<link>http://www.mg2.de/office-allgemein/in-outlook-2007-verknuepfte-sharepoint-listen-lassen-sich-nicht-loeschen/</link>
		<comments>http://www.mg2.de/office-allgemein/in-outlook-2007-verknuepfte-sharepoint-listen-lassen-sich-nicht-loeschen/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 11:40:46 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Office 2007 allgemein]]></category>
		<category><![CDATA[Office SharePoint Server 2007]]></category>
		<category><![CDATA[SharePoint Services 3.0]]></category>

		<guid isPermaLink="false">http://www.mg2.de/?p=90</guid>
		<description><![CDATA[Das Problem: mit Outlook 2007 synchronisierte SharePoint-Listen bzw. Dokumentbibliotheken erscheinen nach dem Entfernen aus Outlook in bestimmten F&#228;llen nach kurzer Zeit wieder. Das Problem kann auftreten, wenn Outlook an mehreren Standorten bzw. PCs genutzt und synchronisiert wird, beispielsweise im Terminalserver, Desktop-PC und im mobilen Ger&#228;t. Die L&#246;sung ist ein Eintrag in der lokalen Outlook Kontoeinstellung [...]]]></description>
			<content:encoded><![CDATA[<p>Das Problem: mit Outlook 2007 synchronisierte SharePoint-Listen bzw. Dokumentbibliotheken erscheinen nach dem Entfernen aus Outlook in bestimmten F&#228;llen nach kurzer Zeit wieder. Das Problem kann auftreten, wenn Outlook an mehreren Standorten bzw. PCs genutzt und synchronisiert wird, beispielsweise im Terminalserver, Desktop-PC und im mobilen Ger&#228;t. Die L&#246;sung ist ein Eintrag in der lokalen Outlook Kontoeinstellung f&#252;r die jeweilige SharePoint-Liste:</p>
<p><span id="more-90"></span><br />
<div style="margin:7px; text-align:center;">
<script type="text/javascript"><!--
google_ad_client = "pub-8984875651872825";
google_alternate_color = "FAFCFF";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
//2007-01-14: mg2
google_ad_channel = "9868614297";
google_color_border = "B0B0B0";
google_color_bg = "FAFCFF";
google_color_link = "0074BC";
google_color_text = "000000";
google_color_url = "0074BC";
//--></script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div></p>
<p>Dazu ruft man unter Extras -&gt; Kontoeinstellungen den Reiter <em>SharePoint-Listen</em> auf:</p>
<p><img class="alignnone size-full wp-image-92" title="SharePoint Listeneinstellung in Outlook" src="http://www.mg2.de/wp-content/uploads/2009/04/outlook-sharepoint-list-1.jpg" alt="SharePoint Listeneinstellung in Outlook" width="634" height="507" /></p>
<p>Ein <strong>Doppelklick mit der Maus</strong> auf den Listeneintrag &#246;ffnet ein Fenster, in dem folgender Eintrag zu pr&#252;fen ist: <em>Diese Liste auf anderen von mir verwendeten Computern nicht anzeigen</em></p>
<p><img class="alignnone size-full wp-image-94" title="SharePoint-Liste aus Outlook entfernen" src="http://www.mg2.de/wp-content/uploads/2009/04/outlook-sharepoint-list-21.jpg" alt="SharePoint-Liste aus Outlook entfernen" width="524" height="466" /></p>
<p>Falls bereits gel&#246;schte Listen immer wieder in Outlook auftauchen, ist mit hoher Wahrscheinlichkeit dort kein Haken gesetzt, was zur Folge hat, dass auf allen Rechnern Outlook versucht, diese SharePoint-Liste zu synchronisieren und demnach immer wieder neu einbindet. Falls man diese dauerhaft l&#246;schen will, sollte auf allen Outlook-Instanzen dieser Eintrag f&#252;r die SharePoint-Liste gesetzt werden. Nun wird die Liste auf allen PCs unabh&#228;ngig voneinander verwaltet und kann bei jedem einzelnen &#252;ber den &#8220;Entfernen&#8221;-Button (siehe Screenshot 1) aus Outlook gel&#246;scht werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/office-allgemein/in-outlook-2007-verknuepfte-sharepoint-listen-lassen-sich-nicht-loeschen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Designer 2007 kostenlos</title>
		<link>http://www.mg2.de/office-allgemein/sharepoint-designer-2007-kostenlos/</link>
		<comments>http://www.mg2.de/office-allgemein/sharepoint-designer-2007-kostenlos/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 14:55:57 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Office 2007 allgemein]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://www.mg2.de/?p=88</guid>
		<description><![CDATA[Wie bereits angek&#252;ndigt steht ab sofort der SharePoint Designer 2007 kostenlos zum Download zur Verf&#252;gung. Heute (am 02.04.2009) kann nun auch endlich das Ger&#252;cht aus der Welt geschafft werden, dass diese Meldung lediglich als Aprilscherz kursierte.


Der SharePoint-Designer 2007 ist (als Nachfolger von Frontpage) das offizielle Tool zum Bearbeiten von Webseiten im Allgemeinen und das Anpassen [...]]]></description>
			<content:encoded><![CDATA[<p>Wie bereits angek&#252;ndigt steht ab sofort der SharePoint Designer 2007 <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=baa3ad86-bfc1-4bd4-9812-d9e710d44f42" target="_blank">kostenlos zum Download</a> zur Verf&#252;gung. Heute (am 02.04.2009) kann nun auch endlich das Ger&#252;cht aus der Welt geschafft werden, dass diese Meldung lediglich als Aprilscherz kursierte.<br />
<span id="more-88"></span><br />
<!--adsense--><br />
Der SharePoint-Designer 2007 ist (als Nachfolger von Frontpage) das offizielle Tool zum Bearbeiten von Webseiten im Allgemeinen und das Anpassen und Erweitern von SharePoint-Seiten im Speziellen. So ist z.B. das Erstellen und Konfigurieren von Workflows ohne Programmierkenntnisse m&#246;glich und mit Hilfe weniger Klicks lassen sich individuelle WebParts bzw. Listenansichten in bestehende SharePoint-Sites integrieren.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/office-allgemein/sharepoint-designer-2007-kostenlos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kalenderwerte durch Code manipulieren</title>
		<link>http://www.mg2.de/sharepoint-services/kalenderwerte-durch-code-manipulieren/</link>
		<comments>http://www.mg2.de/sharepoint-services/kalenderwerte-durch-code-manipulieren/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 16:14:36 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Office SharePoint Server 2007]]></category>
		<category><![CDATA[SharePoint Services 3.0]]></category>

		<guid isPermaLink="false">http://www.mg2.de/?p=80</guid>
		<description><![CDATA[Die Standard SharePoint-Kalender benutzen folgende Felder (die interne Feldbezeichnung) f&#252;r das Start- und Enddatum der jeweiligen Eintr&#228;ge: EventDate und EndDate. Beim Zugriff &#252;ber ein SPListItem-Objekt kann es durchaus vorkommen, dass man beim Versuch, einen Wert zu aktualisieren (auch wenn korrekte Datumswerte &#252;bergeben werden), folgende Fehlermeldung erh&#228;lt:
&#8220;Es wurden ung&#252;ltige Daten zur Aktualisierung des Listeneintrags verwendet. Das [...]]]></description>
			<content:encoded><![CDATA[<p>Die Standard SharePoint-Kalender benutzen folgende Felder (die interne Feldbezeichnung) f&#252;r das Start- und Enddatum der jeweiligen Eintr&#228;ge: EventDate und EndDate. Beim Zugriff &#252;ber ein SPListItem-Objekt kann es durchaus vorkommen, dass man beim Versuch, einen Wert zu aktualisieren (auch wenn korrekte Datumswerte &#252;bergeben werden), folgende Fehlermeldung erh&#228;lt:</p>
<p>&#8220;<em>Es wurden ung&#252;ltige Daten zur Aktualisierung des Listeneintrags verwendet. Das Feld, das Sie aktualisieren m&#246;chten, ist m&#246;glicherweise schreibgesch&#252;tzt.</em>&#8221;</p>
<p><span id="more-80"></span><br />
<!--adsense--></p>
<p>Falls die SharePoint-Umgebung auf Englisch installiert ist, lautet der Fehlertext: &#8220;<em>Invalid data has been used to update the list item. The field you are trying to update may be read only.</em>&#8221; Doch was nun? Nach einigen Tests fand ich heraus, dass die Felder &#8220;EventDate&#8221; und &#8220;EndDate&#8221; immer nur im Doppelpack aktualisiert werden d&#252;rfen. D.h. immer dann, wenn man einem der beiden Felder einen neuen Wert zuweisen will, muss auch das andere mit einem Wert (auch wenn es der alte ist) versehen werden. Dann klappt das Update reibungslos.</p>
<p>Hier ein kleines Beispiel:</p>
<p>Folgender Aufruf klappt nicht und erzeugt obige Fehlermeldung:<br />
<code><br />
SPListItem item = SPContext.Current.Web.Lists["Kalender"].Items[0];<br />
item["Title"] = "Heute";<br />
item["EventDate"] = DateTime.Now;<br />
item.Update();<br />
</code></p>
<p>Hier werden beide Datumsfelder behandelt und das Update findet statt:<br />
<code><br />
SPListItem item = SPContext.Current.Web.Lists["Kalender"].Items[0];<br />
item["Title"] = "Heute";<br />
item["EventDate"] = DateTime.Now;<br />
item["EndDate"] = DateTime.Now;<br />
item["fAllDayEvent"] = true; //Das Ereignis soll als ganzt&#228;giges Ereignis deklariert werden<br />
item.Update();<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/sharepoint-services/kalenderwerte-durch-code-manipulieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DateTime und CAML</title>
		<link>http://www.mg2.de/sharepoint-services/datetime-und-caml/</link>
		<comments>http://www.mg2.de/sharepoint-services/datetime-und-caml/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 16:00:47 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Office SharePoint Server 2007]]></category>
		<category><![CDATA[SharePoint Services 3.0]]></category>

		<guid isPermaLink="false">http://www.mg2.de/?p=82</guid>
		<description><![CDATA[SharePoint erwartet bei einer CAML-Abfrage, die DateTime-Werte filtern soll, diese im ISO8601-Format. Ein Datum in dieser Form w&#252;rde z.B.  so dargestellt werden: 2009-03-08T00:00:00Z. Falls das aktuelle System-Datum integriert werden soll, reicht dagegen die Angabe &#60;Today /&#62; innerhalb der Abfrage aus.


Mit Hilfe der SPUtility-Klasse und der darin enthaltenen Methode CreateISO8601DateTimeFromSystemDateTime kann jeder beliebige DateTime-Wert in das [...]]]></description>
			<content:encoded><![CDATA[<p>SharePoint erwartet bei einer CAML-Abfrage, die DateTime-Werte filtern soll, diese im ISO8601-Format. Ein Datum in dieser Form w&#252;rde z.B.  so dargestellt werden: 2009-03-08T00:00:00Z. Falls das aktuelle System-Datum integriert werden soll, reicht dagegen die Angabe &lt;Today /&gt; innerhalb der Abfrage aus.</p>
<p><span id="more-82"></span><br />
<!--adsense--></p>
<p>Mit Hilfe der SPUtility-Klasse und der darin enthaltenen Methode <em>CreateISO8601DateTimeFromSystemDateTime</em> kann jeder beliebige DateTime-Wert in das korrekte Format konvertiert werden. Hier ein Beispiel einer vollst&#228;ndigen CAML-Query (Abfrage aller Eintr&#228;ge eines SharePoint-Kalenders, deren Anfangsdatum gr&#246;&#223;er als das heute Datum ist):</p>
<p><code>&lt;Query&gt;<br />
&lt;Where&gt;<br />
&lt;Gt&gt;<br />
&lt;FieldRef Name='EventDate' /&gt;&lt;Value Type='DateTime'&gt;" + SPUtility.CreateISO8601DateTimeFromSystemDateTime(DateTime.Now) + "&lt;/Value&gt;<br />
&lt;/Gt&gt;<br />
&lt;/Where&gt;<br />
&lt;/Query&gt;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/sharepoint-services/datetime-und-caml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ein Datenarchiv in SharePoint einrichten</title>
		<link>http://www.mg2.de/sharepoint-server/ein-datenarchiv-in-sharepoint-einrichten/</link>
		<comments>http://www.mg2.de/sharepoint-server/ein-datenarchiv-in-sharepoint-einrichten/#comments</comments>
		<pubDate>Wed, 28 May 2008 13:14:24 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Office SharePoint Server 2007]]></category>

		<guid isPermaLink="false">http://www.mg2.de/?p=73</guid>
		<description><![CDATA[Eine &#252;ber die SharePoint Server 2007 Lizenz vorhandene Sitevorlage installiert das sog. Datenarchiv, an das Daten wie E-Mails oder Word-Dokumente zur Archivierung abgelegt werden k&#246;nnen. &#220;ber diesen Mechanismus k&#246;nnen z.B. frei gestaltbare Richtlinien zum Ablauf auf bestimmter Dokumentinhaltstypen definiert werden oder Dokumente aus Drittsystemen &#252;ber Web Service Schnittstelle an das Archiv gesendet werden. Im folgenden [...]]]></description>
			<content:encoded><![CDATA[<p>Eine &#252;ber die SharePoint Server 2007 Lizenz vorhandene Sitevorlage installiert das sog. <em>Datenarchiv</em>, an das Daten wie E-Mails oder Word-Dokumente zur Archivierung abgelegt werden k&#246;nnen. &#220;ber diesen Mechanismus k&#246;nnen z.B. frei gestaltbare Richtlinien zum Ablauf auf bestimmter Dokumentinhaltstypen definiert werden oder Dokumente aus Drittsystemen &#252;ber Web Service Schnittstelle an das Archiv gesendet werden. Im folgenden eine kurze &#220;bersicht, wie ein Datenarchiv im SharePoint Server eingerichtet wird:</p>
<p><span id="more-73"></span><br />
<!--adsense--></p>
<p>Die Sitevorlage f&#252;r das Datenarchiv erreicht man (bei entsprechend installierter Lizenz) &#252;ber das Men&#252; Websiteaktionen -&gt; Website erstellen. Anschlie&#223;end w&#228;hlt man unter <strong>Vorlagenauswahl</strong> die entsprechende Vorlage <em>Datenarchiv</em> im Reiter <em>Enterprise</em> aus:</p>
<p><img style="vertical-align: middle;" src="http://www.mg2.de/wp-content/uploads/2008/05/da_1.jpg" alt="Datenarchiv Vorlagenauswahl" width="375" height="293" /></p>
<p>Nachdem die neue Site erfolgreich erstellt wurde kann sie als Zielort f&#252;r jedes beliebige Dokument auf dem SharePoint-Server f&#252;r das <em>Senden an</em>-Kontextmen&#252; verwendet werden. Dazu muss Sie jedoch zuvor in der Zentraladministration unter <strong>Anwendungsverwaltung</strong> -&gt; <strong>Externe Dienstverbindungen</strong> -&gt; <strong>Datenarchiv</strong> registriert werden. Als Url muss der entsprechende Zielort des Web Services angegeben werden, z.B. http://server/portal/_vti_bin/officialfile.asmx. Die m&#246;glichen Eingabefelder deuten schon darauf hin, dass nur ein Datenarchiv pro Server (-farm) konfiguriert und damit verwendet werden kann.</p>
<p>Damit ausgew&#228;hlte Benutzer diese Funktion &#252;ber die Weboberfl&#228;che nutzen k&#246;nnen, m&#252;ssen sie evtl. in den Berechtigungseinstellungen des Datenarchivs der Gruppe <em>Absender des Datenarchiv-Webdiensts f&#252;r Datenarchiv</em> hinzugef&#252;gt werden. Bereits vorkonfiguriert ist innerhalb des Datenarchivs die sog. Liste <em>Datensatzrouting</em>, die die Verteilung der gesendeten Dateien an beliebig viele Dokumentbibliotheken &#252;bernimmt. Empfehlenswert ist eine Dokumentbibliothek pro Inhaltstyp (z.B. Vertr&#228;ge).</p>
<p>Gesteuert wird das Routing &#252;ber den Titel eines Eintrages in der Liste, der dem Namen des Inhaltstypen des jeweiligen Dokuments &#252;bereinstimmen sollte. Gibt es hierzu mehrere M&#246;glichkeiten (z.B. weil unterschiedliche Abteilungen unterschiedliche Inhaltstypen verwenden), k&#246;nnen im Feld <em>Aliase</em> weitere Inhaltstypen angegeben werden. F&#252;r das Feld <em>Speicherort</em> ist der Name der Dokumentbibliothek vorgesehen, in der das Dokument archiviert werden soll.</p>
<p>Schickt man nun ein Dokument &#252;ber das Senden-an Kontextmen&#252; an das Datenarchiv wird eine Kopie dort zusammen mit einer XML-Datei abgelegt, die die entsprechenden Metaelemente des Dokuments beinhaltet.</p>
<p>F&#252;r einen effektiven Archivierungs- bzw. Ablageprozess vieler Dateien empfiehlt sich der Einsatz von Workflows oder individuell gestalteter Abl&#228;ufe, die die Schnittstelle (erreichbar auch &#252;ber das SharePoint-Objektmodell) des Datenarchivs nutzen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/sharepoint-server/ein-datenarchiv-in-sharepoint-einrichten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aufl&#246;sen der Werte von Lookup-Feldern</title>
		<link>http://www.mg2.de/sharepoint-services/aufloesen-der-werte-von-lookup-feldern/</link>
		<comments>http://www.mg2.de/sharepoint-services/aufloesen-der-werte-von-lookup-feldern/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 12:33:59 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Office SharePoint Server 2007]]></category>
		<category><![CDATA[SharePoint Services 3.0]]></category>

		<guid isPermaLink="false">http://www.mg2.de/sharepoint-services/aufloesen-der-werte-von-lookup-feldern/</guid>
		<description><![CDATA[Lookup-Felder erlauben Verkn&#252;pfungen von Werten eines Listeneintrages mit einer anderen Liste. List man diese Werte &#252;ber das SharePoint-Objektmodell aus, erh&#228;lt man &#252;ber das SPListItem eine Zeichenkette in der Form &#8220;id;#wert&#8221;, wobei id die eindeutige Id des verkn&#252;pften Listenwertes darstellt und wert den eigentliche Inhalt. Will man nun diese Informationen getrennt verarbeiten, war bisher ein relativ [...]]]></description>
			<content:encoded><![CDATA[<p>Lookup-Felder erlauben <a href="http://www.mg2.de/sharepoint-services/nm-listenbeziehungen-mit-sharepoint-2007/">Verkn&#252;pfungen von Werten</a> eines Listeneintrages mit einer anderen Liste. List man diese Werte &#252;ber das SharePoint-Objektmodell aus, erh&#228;lt man &#252;ber das SPListItem eine Zeichenkette in der Form &#8220;id;#wert&#8221;, wobei <em>id</em> die eindeutige Id des verkn&#252;pften Listenwertes darstellt und <em>wert</em> den eigentliche Inhalt. Will man nun diese Informationen getrennt verarbeiten, war bisher ein relativ aufwendiges Teilen des Strings n&#246;tig. Im WSS 3.0 SDK ist das nun nicht mehr n&#246;tig:<br />
<span id="more-72"></span><br />
<!--adsense--><br />
Hier gibt es das <strong>SPFieldLookupValue</strong> bzw. <strong>SPFieldLookupValueCollection</strong> Objekt. Damit kann nun einerseits ein neuer Nachschlagewert in die Liste eingetragen werden bzw. ein vorhandener ausgelesen werden. &#220;ber die zugeh&#246;rigen <strong>LookupId</strong> und <strong>LookupValue</strong> Eigenschaften stehen nun sofort die oben genannten Werte zur Verf&#252;gung. Dazu muss dem Konstruktor lediglich der String, der die Lookupbeziehung beschreibt, &#252;bergeben werden:</p>
<blockquote><p><code>SPFieldLookupValue lookupField = new SPFieldLookupValue(item["lookupTitle"].ToString());<br />
string id = lookupField.LookupId; //enth&#228;lt die Id des verkn&#252;pften ListItems<br />
string value = lookupField.LookupValue; //enth&#228;lt den Wert des verkn&#252;pften ListItems</code></p></blockquote>
<p>Falls f&#252;r die Verkn&#252;pfung mehrere Werte zul&#228;sst kann entsprechend die SPFieldLookupValueCollection verwendet werden:</p>
<blockquote><p><code>SPFieldLookupValueCollection flvc =<br />
 new SPFieldLookupValueCollection(item["lookupTitle"].ToString());<br />
foreach (SPFieldLookupValue flv in flvc)<br />
{<br />
string id = flv.LookupId; //enth&#228;lt die Id des verkn&#252;pften ListItems<br />
string value = flv.LookupValue; //enth&#228;lt den Wert des verkn&#252;pften ListItems<br />
}</code></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/sharepoint-services/aufloesen-der-werte-von-lookup-feldern/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pr&#252;fen ob eine Datei bereits vorhanden ist</title>
		<link>http://www.mg2.de/sharepoint-services/pruefen-ob-eine-datei-bereits-vorhanden-ist/</link>
		<comments>http://www.mg2.de/sharepoint-services/pruefen-ob-eine-datei-bereits-vorhanden-ist/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 07:18:27 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Office SharePoint Server 2007]]></category>
		<category><![CDATA[SharePoint Services 3.0]]></category>

		<guid isPermaLink="false">http://www.mg2.de/sharepoint-services/pruefen-ob-eine-datei-bereits-vorhanden-ist/</guid>
		<description><![CDATA[Die Abfrage, ob eine Datei in einer bestimmten Site existiert, d&#252;rften schon einige SharePoint-Programmierer implementiert haben. Es gibt viele Wege wie man zum gew&#252;nschten Ergebnis kommt, von einer Schleife &#252;ber alle m&#246;glichen Folder bis zur Query-Abfrage &#252;ber das SPQuery-Objekt ist alles m&#246;glich. Ich bin nun aus einer aktuellen Aufgabe auf die vermutlich k&#252;rzeste und einfachste [...]]]></description>
			<content:encoded><![CDATA[<p>Die Abfrage, ob eine Datei in einer bestimmten Site existiert, d&#252;rften schon einige SharePoint-Programmierer implementiert haben. Es gibt viele Wege wie man zum gew&#252;nschten Ergebnis kommt, von einer Schleife &#252;ber alle m&#246;glichen Folder bis zur Query-Abfrage &#252;ber das SPQuery-Objekt ist alles m&#246;glich. Ich bin nun aus einer aktuellen Aufgabe auf die vermutlich k&#252;rzeste und einfachste gesto&#223;en:<br />
<span id="more-71"></span><br />
<!--adsense--><br />
Im Gegensatz zum SPFileCollection-Objekt verf&#252;gt das SPFile-Objekt &#252;ber eine Eigenschaft Exists, die &#252;ber ein boolean-Wert &#252;ber das Vorhandensein einer Datei Auskunft gibt. Diese Herangehensweise ist eigentlich unlogisch, da ein SPFile-Objekt in der Regel eine vorhandene Datei repr&#228;sentiert. Die GetFile()-Methode eines SPWeb-Objekts liefert aber das gew&#252;nschte SPFile-Objekt, auch wenn die per Parameter &#252;bergebene Url keine Datei zur&#252;ckliefert. Damit kann man nun erfolgreich eine Exists-Abfrage verkn&#252;pfen:</p>
<blockquote><p><code><br />
if (web.GetFile(fileUrl).Exists)<br />
{<br />
  SPFile file = web.GetFile(fileUrl);<br />
}<br />
else<br />
{<br />
  //die Datei ist nicht vorhanden<br />
}<br />
</code></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/sharepoint-services/pruefen-ob-eine-datei-bereits-vorhanden-ist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Konvertieren einer MySQL in eine MSSQL-Datenbank</title>
		<link>http://www.mg2.de/sonstiges/konvertieren-einer-mysql-in-eine-mssql-datenbank/</link>
		<comments>http://www.mg2.de/sonstiges/konvertieren-einer-mysql-in-eine-mssql-datenbank/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 15:40:38 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Sonstiges]]></category>

		<guid isPermaLink="false">http://www.mg2.de/sonstiges/konvertieren-einer-mysql-in-eine-mssql-datenbank/</guid>
		<description><![CDATA[K&#252;rzlich stand ich vor dem Problem, dass ich die Daten aus einer MySQL-Datenbank in eine MS SQL Server 2005 Datenbank kopieren musste. Daf&#252;r stand mir lediglich die kostenlose SQL Server 2005 Express Edition zur Verf&#252;gung, die im Unterschied zu den Vollversionen keine Importfunktionen anbietet. Ich wollte ebenfalls kein Geld f&#252;r eines der vielen ShareWare-Tools ausgeben, [...]]]></description>
			<content:encoded><![CDATA[<p>K&#252;rzlich stand ich vor dem Problem, dass ich die Daten aus einer MySQL-Datenbank in eine MS SQL Server 2005 Datenbank kopieren musste. Daf&#252;r stand mir lediglich die kostenlose SQL Server 2005 Express Edition zur Verf&#252;gung, die im Unterschied zu den Vollversionen keine Importfunktionen anbietet. Ich wollte ebenfalls kein Geld f&#252;r eines der vielen ShareWare-Tools ausgeben, die eine bequeme Konvertierung von MySQL nach MSSQL versprechen. Also habe ich mir &#252;berlegt, dass es doch eine andere kosteng&#252;nstigere L&#246;sung geben muss. Und hier ist sie <img src='http://www.mg2.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
<span id="more-70"></span><br />
<!--adsense--><br />
Ben&#246;tigt wird hierf&#252;r folgende Software, die es komplett umsonst im Internet zum Download gibt:</p>
<ul>
<li><a href="http://www.mysql.de/" target="_blank">das MySQL-Datenbanksystem</a></li>
<li><a href="http://www.microsoft.com/sql/editions/express/" target="_blank">die SQL Server 2005 Express Edition</a></li>
<li><a href="http://www.microsoft.com/germany/express/" target="_blank">eine Visual Studio 2008 Express Edition</a> (z.B. Visual C# 2008 Express Edition)</li>
<li><a href="http://www.mysql.de/products/connector/net/" target="_blank">den MySQL Connector/Net</a></li>
</ul>
<p>Nachdem alle Programme installiert sind, kann man auch schon anfangen, ein neues Windows-Projekt zu erstellen und alle ben&#246;tigten Komponenten einzubinden (wichtig ist hier nat&#252;rlich der Verweis auf die MySql.Data.dll). Die Vorgehensweise, die ich mir zuerst &#252;berlegt habe ist, jeweils eine Verbindung zur MySql-Datenbank und der zu f&#252;llenden MSSQL-Datenbank (deren Strukturen -sprich: Tabellen, Felder bzw. Datentypen &#8211; nat&#252;rlich &#252;bereinstimmen m&#252;ssen) herzustellen und zun&#228;chst ein DataSet mit den Daten aus der MySql-Datenbank zu bef&#252;llen. Anschlie&#223;end wollte ich ein mit der MSSQL-Datenbank verbundenes DataSet mit der Methode merge mit den Daten aus dem ersten DataSet bef&#252;llen. Das hat auch soweit geklappt. Jedoch hat der nachfolgende Aufruf der Update()-Methode, der eine Synchronisation mit der Datenbank ausl&#246;sen sollte, keine Ver&#228;nderungen gezeigt: Die MSSQL-Datenbank blieb leer.</p>
<p>Der Grund hierf&#252;r ist, dass mit dem Mergen der Datenbanken der sog. rowstate der neuen Tabellenzeilen nicht als &#196;nderungen bzw. hinzugef&#252;gte Zeilen erkannt werden und somit keine &#220;bertragung beim Aufruf von Update() erfolgen. Doch hierf&#252;r gibt es Abhilfe: die AcceptChangesDuringFill-Eigenschaft eines DataSets kann vor dem Bef&#252;llen auf false gesetzt werden, so dass alle hinzugef&#252;gten Zeilen als <em>neu hinzugef&#252;gt</em> markiert sind, und bei einem Update auf einen anderen DataAdapter auch als diese erkannt werden. Somit wird nur ein DataSet ben&#246;tigt und ein mergen &#252;berfl&#252;ssig. Diese Technik kann &#252;brigens auch f&#252;r andere Datenbanksysteme, die sich mit .NET anzapfen lassen, genutzt werden. Der folgende Beispielcode bezieht sich allerdings auf das erw&#228;hnte Vorgehen f&#252;r den Import von MySql-Daten in eine MS SQL Server Datenbank:</p>
<p><code></p>
<blockquote><p>SqlConnection msConnection = new SqlConnection(connectionstring);<br />
MySqlConnection myConnection = new MySqlConnection(connectionstring);<br />
DataSet msDs = new DataSet();</p>
<p>msConnection.Open();<br />
myConnection.Open();</p>
<p>SqlDataAdapter msDa = new SqlDataAdapter(sqlselect, msConnection);<br />
MySqlDataAdapter myDa = new MySqlDataAdapter(sqlselect, myConnection);</p>
<p>SqlCommandBuilder c = new SqlCommandBuilder(msDa);<br />
msDa.InsertCommand = c.GetInsertCommand();</p>
<p>myDa.AcceptChangesDuringFill = false;</p>
<p>myDa.Fill(msDs);<br />
msDa.Update(msDs);<br />
myConnection.Close();<br />
msConnection.Close();</p></blockquote>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/sonstiges/konvertieren-einer-mysql-in-eine-mssql-datenbank/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
