December 7th, 2010 | Tags:

Bereits seit SP1 kann der UpdatePanel auch in SharePoint 2007 verwendet werden. Zumindest bin ich davon ausgegangen. Soweit so gut, ich habe den UpdatePanel in ein WebControl integriert und dieses in einem WebPart verwendet. Leider konnte ich machen, was ich wollte, der UpdatePanel wurde einfach nicht upgedated …

Beim Debuggen konnte ich feststellen, dass der Code korrekt durchlaufen wird. EventHandler Methode wurde aufgerufen, der Inhalt wurde angepasst. Sobald ich einen richtigen PostBack ausgeführt habe, waren die Anpassungen auch sichtbar.

Nach stundenlangem Googeln hab ich nun die Lösung gefunden. Und die ist, wie nicht anders zu erwarten, äuserst simpel:

Der <WebPartPages:SPWebPartManager ID=”SPWebPartManager1″ runat=”server” />
muss in der MasterPage unbedingt nach dem Form-Tag platziert werden!

Bei mir befand sich der Tag leider im Header.

August 31st, 2010 | Tags:

Wenn der Benutzer in SharePoint 2010 eine PDF Datei öffnen möchte, wir er aufgefordert, das PDF zu speichern. Das macht natürlich nicht wirklich viel Sinn, denn der Benutzer soll ja nicht wieder anfangen, alles lokal zu speichern.

Um das direkte Öffnen des PDF zu erlauben muss in der Central Administration unter “Application Management” > “Manage web application” die betroffene Web Applikation ausgewählt und die “General Settings” geöffnet werden. Nun kann unter “Browser File Handling” “Permissive” ausgewählt und anschliessend die Änderung gespeichert werden.

Die PDF Dateien werden nun wie gewohnt direkt geöffnet.

August 13th, 2010 | Tags:

Kürzlich hatte ich das Problem, dass ich auf meinem Windows 2008 Server beim Aufruf eines STSADM Befehls über eine Batch Datei eine Access Denied Fehlermeldung erhielt. Da mein User Mitglied der lokalen Administratoren Gruppe und ausserdem Farm Administrator war, konnte es eigendlich nicht an mangelnder Berechtigung des Users liegen.

Nachdem ich einige Zeit im Web gesucht hatte, fand ich folgende Lösung:
Das User Account Control (UAC) ist dazu da, den Server vor möglicherweise schädlichen Programmen zu schützen. Die Programme werden dabei nicht unter Administratoren Berechtigung ausgeführt, auch wenn der Benutzer eigendlich die entsprechenden Rechte hätte. Dies kann umgangen werden, indem entweder ein Programm explizit unter Administratoren Berechtigung ausgeführt wird (Run as Administrator) oder indem das User Account Control unter Control Panel -> User Accounts -> Change User Account Control settings ausgeschalten wird.

January 22nd, 2010 | Tags:

Ein Fehler in einem WebPart kann dazu führen, dass die WebPart Seite nicht mehr aufgerufen werden kann. Da anstelle des normalen Inhalts eine Fehlermeldung angezeigt wird, kann der fehlerhafte WebPart leider auch nicht mehr auf herkömmliche Art von der Seite entfernt werden.

Der URL Parameter ?contents=1 hilft in diesem Fall weiter.

Durch anhängen des Parameters an die URL der Seite wird die Web Part Page Maintenance Seite aufgerufen. Hier können WebParts von der Seite entfernt werden. Ausserdem bietet die Seite die Möglichkeit, korrupte personalisierte Seiten wieder herzustellen indem die personalisierten Einstellungen des aktuellen Benutzers entfernt werden. Ob ein WebPart personalisiert wurde, ist aus der Spalte “Personalized?” ersichtlich.

September 30th, 2009 | Tags:

Im Bereich „Workflow Tasks“ kann zwischen „All participants simultaneously (parallel)” und „One participant at a time (serial)“ gewählt werden.

„All participants simultaneously (parallel)”: Bei der parallelen Aufgabenzuteilung, wird der Task gleichzeitig allen Benutzern zugewiesen. Wenn diese Option gewählt wurde, kann im Bereich „Complete the Workflow“ (weiter unten im Formular) die Option „Complete this workflow when“  ausgewählt werden. Dort kann festgelegt werden, wie viele der genehmigenden Personen die Anpassungen akzeptieren müssen. Sobald diese Anzahl erreicht ist, wird der Workflow abgebrochen. Bei den zu diesem Zeitpunkt noch nicht abgearbeiteten Aufgaben erscheint die Meldung, dass der Workflow abgebrochen wurde.

„One participant at a time (serial)“: Bei der seriellen Aufgabenzuteilung wird jeweils dem ersten User eine Aufgabe zugewiesen. Sobald dieser die Aufgabe erledigt hat, erhält der nächste User die Aufgabe. Der Workflow wird erst abgeschlossen, wenn alle genehmigenden Personen zugestimmt haben.

Wenn im Bereich „Default Workflow Start Values“ die Option „Allow changes to the participant list when this workflow is started“ ausgewählt wird, kann der Benutzer beim Starten des Workflows die zur Genehmigung zugelassene Person ändern.

September 30th, 2009 | Tags:

In den List Settings unter “Permissions and Management” sollte der Link “Workflow settings” angezeigt werden. Da die Workflows die Task Liste benötigen, wird der Link nicht angezeigt, wenn das Tasklist Feature nicht aktiviert ist. Dieses kann im Onet.xml in den <WebFeatures> eingetragen werden.

April 2nd, 2009 | Tags:

Beim Versuch eine Publishing Site Collection zu erstellen, erschien die Fehlermeldung “A duplicate name ‘Item’ was found.” In den Logs wurde zudem die Message “Failed to create the ‘Cache Profiles’ list.” angezeigt. 

Der Stack deutete darauf hin, dass es sich um ein Problem mit einem Content Type handeln könnte. Auch die wenigen Blog Einträge, die ich zu dem Thema finden konnte zeigten in diese Richtung. Die einheitliche Aussage war, dass ein Content Type eine ungültige ContentTypeID habe. Dies kann einerseits ein offensichtlicher Fehler wie ein ungültiges Zeichen in der ContentTypeID sein, es ist aber auch möglich, dass zwischen der Parent ContentTypeID und der eigenen GUID die zwei Nullen (00) fehlen.

In meinem Fall war es so, dass die betroffene Farm von vielen verschiedenen Entwicklern zum testen verwendet wird. Daher wusste ich nicht, ob und wo in letzter Zeit neue Content Types hinzugefügt wurden. Ich habe im 12 Hive den Template Folder nach <ContentType durchsucht und die Suchergebnisse nach Datum sortiert. Dadurch erschienen unsere Anpassungen zuoberst. Nachdem ich das Feature mit dem falschen Content Type deinstalliert hatte, konnte ich meine Publishing Site Collection wie gewohnt erstellen.

January 20th, 2009 | Tags: , ,

Zum programmatischen erstellen von Lookup Fields steht die Methode AddLookup() in der SPFieldCollection Klasse zur Verfügung. Welches Feld im Lookup angezeigt werden soll, kann erst nach dem Erstellen des Lookups über den Parameter LookupField definiert werden. Per default wird das Title Field verwendet. Zumindest ist dies in den Form Templates und in der List View so.

In einem Kundenprojekt sollten über die Edit in Datasheet View Daten eingetragen werden. Die Applikation verfügte über mehrere Listen, die über Lookup Fields verknüpft waren. Leider konnten die Lookup Fields nicht ausgefüllt werden. Die Auswahl wurde nicht angezeigt, obwohl die referenzierten Listen Daten enthielten. Wenn das das Lookup Field über das Admin Interface nochmals abgespeichert wurde, hat es jeweils plötzlich funktioniert.

Nach längerem suchen habe ich herausgefunden, dass dieser Fehler immer dann auftritt, wenn das Property LookupField nicht gesetzt wurde. Die Edit in Datasheet View verwendet also im Gegensatz zu den Standard Views nicht das Title Field als Default-Wert.

Das Problem kann umgangen werden, indem nach dem programmatischen Erstellen eines Lookups immer das LookupField Property gesetzt wird.

TOP