<?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 &#187; SharePoint Services 3.0</title>
	<atom:link href="http://www.mg2.de/category/sharepoint-services/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>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<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>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. [...]]]></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 />
<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>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>1</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 [...]]]></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>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>ListItem Event Handler und Properties</title>
		<link>http://www.mg2.de/sharepoint-services/listitem-event-handler-und-properties/</link>
		<comments>http://www.mg2.de/sharepoint-services/listitem-event-handler-und-properties/#comments</comments>
		<pubDate>Wed, 24 Oct 2007 14:37:46 +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/listitem-event-handler-und-properties/</guid>
		<description><![CDATA[&#220;ber das SharePoint Objektmodell ist die Auswahl der verf&#252;gbaren Events gegen&#252;ber der Vorg&#228;ngerversion enorm gestiegen. So sind nun auch alle Listen (nicht nur Dokumentbibliotheken) verf&#252;gbar und es werden Events vor und nach einer Aktion abfangbar gemacht. Eine kleine Stolperfalle k&#246;nnen die Eigenschaften des SPItemEventProperties Objekts beinhalten, gerade wenn man die ersten Gehversuche beim Implementieren eines [...]]]></description>
			<content:encoded><![CDATA[<p>&#220;ber das SharePoint Objektmodell ist die Auswahl der verf&#252;gbaren Events gegen&#252;ber der Vorg&#228;ngerversion enorm gestiegen. So sind nun auch alle Listen (nicht nur Dokumentbibliotheken) verf&#252;gbar und es werden Events vor und nach einer Aktion abfangbar gemacht. Eine kleine Stolperfalle k&#246;nnen die Eigenschaften des <strong>SPItemEventProperties</strong> Objekts beinhalten, gerade wenn man die ersten Gehversuche beim Implementieren eines Events unternimmt.<br />
<span id="more-69"></span><br />
<!--adsense--><br />
Diese Properties werden beim &#220;berschreiben der entsprechenden Methode (z.B. ItemUpdating) &#252;bergeben und stehen dann mit hilfreichen Eigenschaften wie die SiteId oder das betreffende SPListItem selbst zur Verf&#252;gung. Au&#223;erdem sind darin sog. <strong>AfterProperties</strong> und <strong>BeforeProperties</strong> enthalten, welche eine n&#252;tzliche Eigenschaft besitzen. Sie speichern die Inhalte eines ListItems vor- bzw. nach der Ausf&#252;hrung der entsprechenden Aktion in Form einer HashTable.</p>
<p>Beispielsweise ist f&#252;r den ItemUpdating-Event (der bekanntlich vor dem Aktualisieren des ListItems eintritt) mit folgendem Aufruf der Titel des Elements nach dem eigentlichen Update abrufbar (also quasi als Vorschau f&#252;r die zuk&#252;nftigen Werte):</p>
<blockquote><p><code>string titleAfterUpdate = properties.AfterProperties["Title"].ToString();</code></p></blockquote>
<p>Der Title des ListItems vor dem Aktualisierung kann mit folgender Zeile abgerufen werden:</p>
<blockquote><p><code>string titleBeforeUpdate = properties.ListItem["Title"].ToString();</code></p></blockquote>
<p>Falls man nun verhindern m&#246;chte, dass der Titel nach dem Udpate ge&#228;ndert ist, kann dies durch folgende Abfrage unterbunden werden:</p>
<blockquote><p><code>if(titleAfterUpdate != titleBeforeUpdate)<br />
{<br />
properties.Cancel = true;<br />
properties.ErrorMessage = "Der Titel darf nicht ge&#228;ndert werden.";<br />
}</code></p></blockquote>
<p>Vielleicht kein sinnvolles Beispiel, aber es verdeutlicht die M&#246;glichkeiten, die man damit hat <img src='http://www.mg2.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Die oben angesprochene Stolperfalle ist die Verwendung der Eigenschaften BeforeProperties, AfterProperties und ListItem des SPItemEventProperties Objekts. Denn nicht bei jedem Event stehen diese zur Verf&#252;gung. Bei obigen Beispiel w&#252;rde der Aufruf des Titels &#252;ber dasBeforeProperties Objekt eine Exception werfen, da die Werte vor Eintreten des Events &#252;ber das ListItem Objekt abgerufen werden m&#252;ssen. Andererseits w&#228;re f&#252;r einen ItemUpdated (man beachte die Endung; er tritt ein, wenn das Update bereits ausgef&#252;hrt wurde) die Werte vor Update in BeforeProperties zu finden und die danach nicht in AfterProperties sondern in ListItem.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/sharepoint-services/listitem-event-handler-und-properties/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fehler beim &#214;ffnen der Datenblattansicht</title>
		<link>http://www.mg2.de/office-allgemein/fehler-beim-oeffnen-der-datenblattansicht/</link>
		<comments>http://www.mg2.de/office-allgemein/fehler-beim-oeffnen-der-datenblattansicht/#comments</comments>
		<pubDate>Fri, 06 Jul 2007 08:18:28 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Office 2007 allgemein]]></category>
		<category><![CDATA[Office SharePoint Server 2007]]></category>
		<category><![CDATA[SharePoint 2003]]></category>
		<category><![CDATA[SharePoint Services 3.0]]></category>

		<guid isPermaLink="false">http://www.mg2.de/office-allgemein/fehler-beim-oeffnen-der-datenblattansicht/</guid>
		<description><![CDATA[Das Bearbeiten einer Liste im Datenblatt ist oftmals eine n&#252;tzliche M&#246;glichkeit, viele Listeneintr&#228;ge gleichzeitig anzulegen, zu &#228;ndern oder zu l&#246;schen. Doch was wenn beim Versuch, die Datenblattansicht einer SharePoint-Liste zu &#246;ffnen folgende Fehlermeldung im Browser erscheint: Sie k&#246;nnen eine Liste in Datenblattansicht auf einer Microsoft Windows SharePoint Services-Website nicht anzeigen. Eine Tabellenkomponente, die mit Windows [...]]]></description>
			<content:encoded><![CDATA[<p>Das Bearbeiten einer Liste im Datenblatt ist oftmals eine n&#252;tzliche M&#246;glichkeit, viele Listeneintr&#228;ge gleichzeitig anzulegen, zu &#228;ndern oder zu l&#246;schen. Doch was wenn beim Versuch, die Datenblattansicht einer SharePoint-Liste zu &#246;ffnen folgende <a href="http://support.microsoft.com/kb/909506/de" target="_blank">Fehlermeldung</a> im Browser erscheint:</p>
<blockquote><p> Sie k&#246;nnen eine Liste in Datenblattansicht auf einer Microsoft Windows SharePoint Services-Website nicht anzeigen.</p>
<ul>
<li>Eine Tabellenkomponente, die mit Windows SharePoint Services kompatibel ist, wird nicht installiert.</li>
<li>Eine Microsoft Office 2003 Professional Edition ist auf dem Computer nicht installiert.</li>
<li>Das Webbrowser unterst&#252;tzt ActiveX-Steuerelement nicht.</li>
<li>Unterst&#252;tzung von ActiveX-Steuerelement wird deaktiviert.</li>
</ul>
</blockquote>
<p><span id="more-62"></span><br />
<!--adsense--></p>
<p>Die zwei letzten M&#246;glichkeiten betreffen den Browser bzw. die darin enthaltenen ActiveX-Einstellungen. Zu finden sind diese im Internet Explorer unter Extras » Internetoptionen » Sicherheit » Stufe anpassen. Dort muss f&#252;r die entsprechende Sicherheitszone das Ausf&#252;hren von ActiveX-Steuerelementen aktiviert sein:</p>
<p><img src="http://www.mg2.de/wp-content/uploads/2007/07/activex_sicherheitseinstellungen.jpg" title="ActiveX Sicherheitseinstellungen" alt="ActiveX Sicherheitseinstellungen" /></p>
<p>Hinweis: Es empfiehlt sich, niedrigere Sicherheitseinstellungen nur f&#252;r die Zone <em>Vertrauensw&#252;rdige Sites</em> vorzunehmen und die entsprechende SharePoint-Site &#252;ber die Schaltfl&#228;che &#8220;Sites&#8230;&#8221; zu dieser Zone hinzuzuf&#252;gen.</p>
<p>Die beiden ersten Hinweise der Fehlermeldung deuten auf eine fehlende Installation einer Tabellenkalkulation hin. Daher sollte man sicherstellen, dass entweder Office 2003 oder 2007 Professional installiert ist. Die darin erforderlichen Komponenten w&#228;ren f&#252;r die Version 2003 Excel und f&#252;r 2007 Access. Doch selbst dann kann der obige Fehler erscheinen. Denn das ActiveX-Steuerelement kann im Office-Setup separat installiert werden. Zu finden ist der Eintrag in der Systemsteuerung unter Software. Dort das entsprechende Office-Produkt ausw&#228;hlen und auf <em>&#228;ndern</em> klicken. Anschlie&#223;end sollte der Eintrag <em>Features hinzuf&#252;gen oder entfernen</em> ausgew&#228;hlt werden. In der nachfolgenden Baumstruktur findet man unter <em>Office Tools</em> den entscheidenden Eintrag: <em>Unterst&#252;tzung f&#252;r Windows SharePoint Services</em>. Dort sollten alle Eintr&#228;ge auf <em>von &#8216;Arbeitsplatz&#8217; ausf&#252;hren</em> gesetzt sein wie auf folgender Abbildung f&#252;r Office 2003 dargestellt ist:</p>
<p><img src="http://www.mg2.de/wp-content/uploads/2007/07/office_sharepoint_setup.jpg" alt="Office 2003 SharePoint Unterst&#252;tzung" /></p>
<p>F&#252;r Office 2007 sieht der Setupeintrag folgenderma&#223;en aus:</p>
<p><img src="http://www.mg2.de/wp-content/uploads/2007/07/office2007_sharepoint_setup.jpg" alt="Office 2007 SharePoint Unterst&#252;tzung" /></p>
<p>Oftmals wird aber auch trotz korrekter Installation dieser Komponenten ein Aufruf der Datenblattansicht mit obiger Meldung verhindert. Wie ich heute im <a href="http://www.mindbusiness.de/blog/2007/08/29/datenblattansicht-in-windows-sharepoint-services-und-microsoft-office-sharepoint-server-2007-moss-2007/" target="_blank">Blog der Mindbusiness GmbH</a> gelesen habe kann aber auch ein falscher Eintrag in der Registry das Laden des Add-ons verhindern. Dort wurde mit Hilfe des Microsoft Supports folgender L&#246;sungsvorschlag gemacht:<br />
Unter HKEY_LOCAL_MASCHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility einen Eintrag mit der CLSID <strong>65BCBEE4-7728-41A0-97BE-14E1CAE36AAE</strong> suchen. Falls dieser vorhanden ist, sollte das L&#246;schen dieses Knotens und ein Neustart des Internet Explorer nun das Problem beheben.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/office-allgemein/fehler-beim-oeffnen-der-datenblattansicht/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Google Search WebPart</title>
		<link>http://www.mg2.de/sharepoint-services/google-search-webpart/</link>
		<comments>http://www.mg2.de/sharepoint-services/google-search-webpart/#comments</comments>
		<pubDate>Mon, 02 Jul 2007 09:25:51 +0000</pubDate>
		<dc:creator>Matthias</dc:creator>
				<category><![CDATA[Office SharePoint Server 2007]]></category>
		<category><![CDATA[SharePoint 2003]]></category>
		<category><![CDATA[SharePoint Services 3.0]]></category>

		<guid isPermaLink="false">http://www.mg2.de/sharepoint-services/google-such-webpart/</guid>
		<description><![CDATA[Die Google Suche d&#252;rfte auch bei den meisten SharePoint Benutzern eine h&#228;ufig genutzte Funktion zur Suche im Web sein. Marc Wagner hatte bereits vor einiger Zeit ein WebPart ver&#246;ffentlicht (Google Search Webpart), das die Google Suche erm&#246;glicht. Leider nur auf Englisch und nur &#252;ber die Installation eines neuen Webparts. Deshalb habe ich einen Code geschrieben, [...]]]></description>
			<content:encoded><![CDATA[<p>Die Google Suche d&#252;rfte auch bei den meisten SharePoint Benutzern eine h&#228;ufig genutzte Funktion zur Suche im Web sein. Marc Wagner hatte bereits vor einiger Zeit ein <a href="http://blogs.crsw.com/mark/articles/1009.aspx" target="_blank">WebPart ver&#246;ffentlicht</a> (Google Search Webpart), das die Google Suche erm&#246;glicht. Leider nur auf Englisch und nur &#252;ber die Installation eines neuen Webparts. Deshalb habe ich einen Code geschrieben, der die Google Suche auf Deutsch erm&#246;glicht (das ist aber nat&#252;rlich auch auf andere Sprachen erweiterbar) und &#252;ber das bereits integrierte Inhalts-Editor-Webpart einsetzbar ist.<br />
<span id="more-59"></span><br />
<!--adsense--></p>
<p>Der Vorteil ist, dass dieses Webpart ohne Administratorberechtigungen auf jeder beliebigen SharePoint-Seite integrierbar und mit ein wenig HTML/Javascript Kenntnissen flexibel anpassbar ist. Dazu einfach das Inhalts-Editor-Webpart an eine beliebige Stelle innerhalb einer Webpartzone einf&#252;gen und anschlie&#223;end &#252;ber den Toolbereich den Quelltexteditor aufrufen. Dort muss nur folgender Code eingef&#252;gt werden:</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;div style=&quot;text-align:center;&quot;&gt;&lt;div&gt;
&lt;a href=&quot;http://www.google.de&quot;&gt;&lt;img src=&quot;http://www.google.de/logos/Logo_40wht.gif&quot; border=&quot;0&quot; alt=&quot;Google&quot; align=&quot;absmiddle&quot;&gt;&lt;/a&gt;
&lt;input type=&quot;text&quot; onKeyDown=&quot;if (event.keyCode==13) submit_google();&quot; id=&quot;google_q&quot; size=&quot;31&quot; maxlength=&quot;255&quot; value=&quot;&quot; /&gt;
&lt;button id=&quot;btnGoogle&quot; type=&quot;button&quot; onclick=&quot;submit_google();&quot;&gt;Google Suche&lt;/button&gt;&lt;/div&gt;
&lt;div&gt;&lt;input type=&quot;radio&quot; id=&quot;g_site&quot; name=&quot;g_scope&quot; value=&quot;1&quot; /&gt; diese Seite
&lt;input type=&quot;radio&quot; name=&quot;g_scope&quot; value=&quot;2&quot; checked=&quot;checked&quot; /&gt; Web&lt;/div&gt;
&lt;/div&gt;
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;
// &lt;![CDATA[
function submit_google()
{
	var googleQuery = document.getElementById('google_q');
	var g_url = &quot;http://www.google.de/search?hl=de&amp;q=&quot;;

	if(googleQuery)
	{
		if(googleQuery.value.length &gt; 0)
		{
			var s = encodeURI(googleQuery.value);

			if(document.getElementById('g_site').checked)
			{
				s = &quot;site:&quot; + window.location.host + &quot; &quot; + s;
			}

			var g_w = window.open(g_url+s, &quot;google_window&quot;);
			if(g_w != null) g_w.focus();
		}
		else
		{
			alert(&quot;Bitte einen Suchbegriff eingeben.&quot;);
		}
	}
}
// ]]&gt;
&lt;/script&gt;
</pre>
<p>Anschlie&#223;end sollte das Webpart die Google Suchmaske wiefolgt anzeigen:<br />
<img src="http://www.mg2.de/wp-content/uploads/2007/07/google-webpart.jpg" alt="Google Search Webpart" /><br />
Sollte der Popupblocker des Browsers das &#214;ffnen der Suchergebnisse verhindern (weil das neue Fenster &#252;ber eine Javascript-Funktion ge&#246;ffnet wird), muss die SharePoint-Seite dort entsprechend als vertrauensw&#252;rdig eingerichtet werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/sharepoint-services/google-search-webpart/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Excel 2007 Add-in zur Synchronisation von SharePoint Listen</title>
		<link>http://www.mg2.de/office-allgemein/excel-2007-add-in-zur-synchronisation-von-sharepoint-listen/</link>
		<comments>http://www.mg2.de/office-allgemein/excel-2007-add-in-zur-synchronisation-von-sharepoint-listen/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 06:44:18 +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/sharepoint-server/excel-2007-add-in-zur-synchronisation-von-sharepoint-listen/</guid>
		<description><![CDATA[Unter Sharepoint 2003 bzw. 2.0 war Excel (ebenfalls in der Version 2003) das Tool zur (offline) Bearbeitung und Synchronisation von Listen. Mit der neuen Version 3.0 wurde diese Funktionalit&#228;t zu Access 2007 &#252;bertragen. Man konnte zwar weiterhin Listen aus Excel 2007 in eine SharePoint-Liste ver&#246;ffentlichen aber danach nicht mehr wie gewohnt synchronisieren. Mit dem jetzt [...]]]></description>
			<content:encoded><![CDATA[<p>Unter Sharepoint 2003 bzw. 2.0 war Excel (ebenfalls in der Version 2003) das Tool zur (offline) Bearbeitung und Synchronisation von Listen. Mit der neuen Version 3.0 wurde diese Funktionalit&#228;t zu Access 2007 &#252;bertragen. Man konnte zwar weiterhin Listen aus Excel 2007 in eine SharePoint-Liste ver&#246;ffentlichen aber danach nicht mehr wie gewohnt synchronisieren.<br />
<span id="more-58"></span><br />
<!--adsense--></p>
<p>Mit dem jetzt verf&#252;gbaren <a href="http://www.microsoft.com/downloads/details.aspx?familyid=25836e52-1892-4e17-ac08-5df13cfc5295&amp;displaylang=en" target="_blank">Excel 2007 Add-in: Synchronizing Tables with SharePoint Lists</a> ist genau diese Funktion wieder verf&#252;gbar, allerdings mit einer Einschr&#228;nkung: Die Excel-Datei darf nicht im Office Open XML Format gespeichert sein, sondern muss im Excel 97-2003 (Biff8) Dateiformat gespeichert werden. Eine Anleitung (auf Englisch) zur Installation und Verwendung des Add-Ins gibt es unter <a href="http://msdn2.microsoft.com/en-us/library/bb462636(office.11).aspx" target="_blank">http://msdn2.microsoft.com/en-us/library/bb462636(office.11).aspx</a>.</p>
<p>In Excel 2003 musste der zu synchronisierende Bereich als <em>Liste</em> deklariert werden, Excel 2007 nennt diese Struktur nun <em>Tabelle</em> und ist im Reiter Einf&#252;gen-&gt;Tabellen-&gt;Tabelle zu finden. Anschlie&#223;end findet man auch die SharePoint-Synchronisierungsfunktion (&#252;ber Reiter Entwurf: Tabellentools-&gt;SharePoint-&gt;Publish and allow Sync).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/office-allgemein/excel-2007-add-in-zur-synchronisation-von-sharepoint-listen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Whitepaper das jeder SharePoint-Entwickler gelesen haben muss</title>
		<link>http://www.mg2.de/sharepoint-services/whitepaper-das-jeder-sharepoint-entwickler-gelesen-haben-muss/</link>
		<comments>http://www.mg2.de/sharepoint-services/whitepaper-das-jeder-sharepoint-entwickler-gelesen-haben-muss/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 06:32:38 +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-server/whitepaper-das-jeder-sharepoint-entwickler-gelesen-haben-muss/</guid>
		<description><![CDATA[Einen hervorragender Artikel (geschrieben von Patrick Tisseghem) &#252;ber die Entwicklung und Anpassung des SharePoint-Frameworks ist jetzt in der MSDN erschienen: Development Tools and Techniques for Working with Code in Windows SharePoint Services 3.0, Teil 1 und Teil 2. Dieses Whitepaper sollte jeder gelesen haben (gerade f&#252;r Einsteiger gut geeignet), der vor hat, mit Visual Studio [...]]]></description>
			<content:encoded><![CDATA[<p>Einen hervorragender Artikel (geschrieben von Patrick Tisseghem) &#252;ber die Entwicklung und Anpassung des SharePoint-Frameworks ist jetzt in der MSDN erschienen: Development Tools and Techniques for Working with Code in Windows SharePoint Services 3.0, <a target="_blank" href="http://msdn2.microsoft.com/en-us/library/bb530302.aspx">Teil 1</a> und <a target="_blank" href="http://msdn2.microsoft.com/en-us/library/bb530301.aspx">Teil 2</a>. Dieses Whitepaper sollte jeder gelesen haben (gerade f&#252;r Einsteiger gut geeignet), der vor hat, mit Visual Studio 2005 Entwicklungen vorzunehmen bzw. die Struktur des SharePoint zu ver&#228;ndern oder zu erweitern.<br />
<span id="more-57"></span><br />
<!--adsense--></p>
<p>Der Artikel geht dabei auf folgende Themengebiete n&#228;her ein und veranschaulicht diese mit vielen (Code-) Beispielen und Schaubildern:</p>
<ul>
<li>Einf&#252;hrung in die SharePoint-Technologien</li>
<li>Erforderliche Kenntnisse</li>
<li>ASP.NET vs. SharePoint Services</li>
<li>Die SharePoint-Entwicklungsumgebung</li>
<li>Visaul Studio 2005 Extensions f&#252;r WSS 3.0</li>
<li>Windows SharePoint Services L&#246;sungen entwicklen, ausliefern und verwalten</li>
<li>Code Access Security und WebParts</li>
</ul>
<p>Also, am besten ausdrucken und mehrmals lesen!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mg2.de/sharepoint-services/whitepaper-das-jeder-sharepoint-entwickler-gelesen-haben-muss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

