Dorrit Riemenschneider

Tipps und Tricks: Umgang mit geschlos­se­nen WebParts

Geschlossenen WebPart wie­der in die Seite inte­grie­ren Wenn man einen WebPart im SharePoint mit X schließt, so wird die­ser trotz­dem auf die Seite gela­den und ver­braucht Ressourcen - er wird ledig­lich nicht mehr ange­zeigt. Um ihn wie­der auf der Seite anzu­zei­gen sind fol­gende Schritte not­wen­dig: Site Actions -> Edit Page aus­wäh­len Add a Web Part aus­wäh­len Advanced Web Part gallery…

Tipps und Tricks: Datum aus DateTime extra­hie­ren im SQL-Server

Um aus einem Datum mit Uhrzeit, wie es bei­spiels­weise GETDATE() zurück­lie­fert, ein Datumswert ohne Uhrzeit zu machen, sind bis zur Version 2005 des SQL-Servers einige Verrenkungen not­wen­dig. Ich möchte hier ein paar Lösungsansätze auf­zei­gen. Diese sind nach mei­ner Präferenz sor­tiert: SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME) SELECT CONVERT(DATETIME, CONVERT(CHAR(8), GETDATE(), 112), 112) Es gibt…

Neuerungen in SQL Server 2008: Table Valued Parameters (TVP)

… oder wie bei Microsoft das Basteln abge­schafft wurde Wer schon ein­mal vor dem Problem stand, an eine SQL Server Prozedur oder Funktion eine Liste von Werten oder gar eine Tabelle zu über­ge­ben, der wird für die­ses Problem bestimmt eine Lösung gefun­den haben: Ob man nun die Werte mit einem geeig­ne­ten Trennzeichen ver­se­hen (ich bevor­zuge Pipes ) alle in eine…

Neuerungen in SQL Server 2008: MERGE-Anweisung

Wer sich schon immer mal dar­über geär­gert hat, dass meh­rere SQL-Anweisungen nötig waren, um in einer Tabelle, abhän­gig von den Bedingungen in einer ande­ren Tabelle, Daten ein­zu­fü­gen, zu ändern und/oder zu löschen, der wird über die neue MERGE-Anweisung in SQL Server 2008 hoch­er­freut sein - … vor­aus­ge­setzt, er kann sich für kom­plexe SQL-Anweisungen begeis­tern 😉 .  Das abso­lute Standard-Szenario für die Anwendung…

Sharepoint Bug: Exception bei Setzen der Cancel-Property in ItemAdding in einer benut­zer­de­fi­nier­ten Liste

… oder der lange Weg zum Glück Manchmal hat man als Sharepoint-Entwickler das Bedürfnis, sich in einer benut­zer­de­fi­nier­ten Liste an das Hinzufügen oder Ändern eines Items anzu­hän­gen und die Aktion abzu­bre­chen und dabei eine nette benut­zer­de­fi­nierte Fehlermeldung aus­ge­ben. Das sollte eigent­lich über­haupt kein Problem sein, man erstellt ein­fach einen EventReceiver für ItemAdding bzw. ItemUpdating und setzt dort die ErrorMessage sowie die…

Zugriff auf erwei­terte Eigenschaften einer Workflowaufgabe

Bei der Entwicklung kom­ple­xer Workflows für den SharePoint spie­len auch Workflowaufgaben für die Benutzerinteraktion wäh­rend der Ausführung des Workflows eine nicht unbe­deu­tende Rolle. Eine sol­che Aufgabe hat nicht nur die Standardeigenschaften wie einen Titel oder eine Beschreibung son­dern auch erwei­terte Eigenschaften. Das prak­ti­sche daran ist, dass diese kein eige­nes Feld in der Liste benö­ti­gen son­dern die Daten in den bereits vorhandenen…

Speichern und Lesen von Binärobjekten in MS SQL-Server 2005

Hin und wie­der kommt es vor, dass man Dateien im BLOB-Format in einer Tabelle ablegt. Wenn man nun "schnell" auf diese Daten zugrei­fen will, steht man vor einem Problem, denn der Standard-SQL-Befehlssatz bie­tet keine Möglichkeit, Spalten mit Binärdaten zu fül­len bzw. diese Daten wie­der aus­zu­le­sen und in eine Datei zu spei­chern. Nun hat man nicht immer eine Entwicklungsumgebung zu Hand,…

Clientseitiges "onchange" für ASP.Net CheckBoxList Items

Als net­ter ASP.Net Programmierer mutet man dem Anwender wegen eines Klicks in eine CheckBox (in die­sem Fall als Item einer CheckBoxList) kein Postback/Reload der Seite zu. Nun hat man ja aber viel­leicht doch den Wunsch, das eine oder andere beim Klick zu erle­di­gen - cli­ent­sei­tig per Javascript. Wenn mög­lich, will man den ein­zel­nen CheckBoxList Items noch ein paar Attribute mitgeben,…

XML String brow­ser­un­ab­hän­gig mit Javascript parsen

Manchmal hat man ein Problem, und wenn man es dann gelöst hat, ist die Lösung so ein­fach, dass man es fast nicht glau­ben mag. So ging es mir mit fol­gen­der Aufgabe: Gegeben ist ein String, der ein XML Document reprä­sen­tiert: <books> <book author="Meier">Lexikon der Meierei</book> <book author="Muster">Patterns in der Schneiderstube</book> </books> Diesen String möchte man (mög­lichst brow­ser­un­ab­hän­gig, wenigs­tens soll es…

Sharepoint Listenelement (SPListItem) in eine andere Liste kopieren

Dafür gibt es (theo­re­tisch) eine denk­bar ein­fa­che Lösung: SPListItem bie­tet eine Methode CopyTo(destinationUrl) an (http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.splistitem.copyto.aspx) - lei­der scheint diese aber nicht (in jedem Fall?) zu funk­tio­nie­ren. Zumindest in mei­nem Fall (benut­zer­de­fi­nierte Liste mit benut­zer­de­fi­nier­tem Inhaltstyp UND Attachments - viel­leicht erwarte ich ein­fach auch zu viel von Sharepoint…) tat sie es nicht. Stattdessen erhielt ich fol­gende Exception: "Source item can­not be…

Formular URLs für Sharepoint Inhaltstypen anpassen

Wenn man in Sharepoint einen benut­zer­de­fi­nier­ten Inhaltstyp erstellt und die­sen einer Liste zuweist, muss man sich im Idealfall nicht um die Formulare für das Anlegen, Anzeigen und Editieren der Listeneinträge küm­mern - dies erle­digt Sharepoint anhand der zum Inhaltstyp zuge­hö­ri­gen Spalten freund­li­cher­weise auto­ma­tisch für uns. Nun kann es aber pas­sie­ren, dass wir mit dem von Sharepoint gene­rier­ten Standardformular nicht zufrie­den sind…

User Controls dyna­misch zur Laufzeit in ein Web Form einbinden

Web User Controls (*.ascx) kann man zur Designzeit sehr bequem per Drag & Drop auf ein Web Form (*.aspx) zie­hen - den Rest erle­digt Visual Studio für uns.Wenn man das Gleiche dyna­misch zur Laufzeit errei­chen möchte (weil man z.B. unter­schied­li­che ascx-Dateien ver­wen­den oder ein­und­die­selbe ascx-Datei mehr­mals nach­ein­an­der laden will), kann man das fol­gen­der­ma­ßen bewerk­stel­li­gen: Unser User Control heißt "SampleControl" und…

Verwenden von Sharepoint Listen als Datenquellen für CheckBox Lists oder RadioButton Lists

Wer für Sharepoint Web Forms und/oder Controls ent­wi­ckelt, hatte viel­leicht auch schon ein­mal das Bedürfnis, eine Sharepoint Liste als Datenquelle für z.B. eine RadioButton List zu ver­wen­den. Dies lässt sich glück­li­cher­weise mit gerin­gem Aufwand umset­zen: Hier ist erst ein­mal unsere Sharepoint Beispielliste: Und hier die RadioButton List, an die wir die Liste bin­den wol­len: Wichtig sind hier die Properties DataTextField…

Application Pool neu star­ten als Alternative zu IISRESET

Wer mit Visual Studio.Net Sharepoint Projekte (Webparts, Workflows etc.) ent­wi­ckelt, weiß wie oft man wäh­rend der Entwicklung ein IISRESET machen muss und auch, dass dies immer eine Weilchen Zeit in Anspruch nimmt. Besonders inter­es­sant wird es natür­lich, wenn das IISRESET auf einem System aus­ge­führt wird, auf dem auch noch andere Nutzer arbei­ten, denen dann förm­lich der IIS "unter den Füßen…

3malige Passworteingabe für Office Dokumente in Sharepoint unter Vista

Für alle Vista-Nutzer, die sich auch schon dar­über geär­gert haben, dass sie bei jedem Öffnen, Speichern, Einchecken usw. eines Office-Dokumentes aus einer Sharepoint Dokumentenbibliothek (2003 oder 2007) 3 mal nach ihrem Passwort gefragt wer­den, fin­det sich in der MS Knowledge Base die tröst­li­che Erklärung, das die­ses Verhalten „by design“ ist: http://support.microsoft.com/kb/932118/en Immerhin gibt es aber einen Workaround dafür: Seite im…

Erstellung einer Konfigurationsdatei für einen Business Data Catalog

Eine Konfigurationsdatei für Business Data Catalogs ist eine XML-Datei, die dem Schema bdcmetadata.xsd ent­spricht. Zum Binden der XSD-Datei an die neue XML-Datei gibt es meh­rere Möglichkeiten: Wenn man die Datei im Visual Studio ent­wi­ckeln möchte kopiert man am bes­ten die Datei bdcmetadata.xsd in die Visual Studio 2005 Schema Library. Die Datei ist im Order Program Files\Microsoft Office Servers\12.0\Bin zu finden…

Masterpage für eine Site und alle Subsites auto­ma­tisch aktualisieren

Wer schon ein­mal hän­dig die default.master für eine Site (z.B. im Sharepoint Designer) ange­passt hat und diese Änderungen für eine grö­ßere Menge vor­han­de­ner Sites über­neh­men wollte, weiß, wie zeit- und nerv­tö­tend dies sein kann: jede Site muss ein­zeln im Sharepoint Designer auf­ge­ru­fen und die Masterpage ersetzt werden.Mit einer klei­nen Konsolenanwendung kann man hier Abhilfe schaf­fen: Die Anwendung läuft rekur­siv durch alle Sites und Subsites ab einer über­ge­be­nen URL, lädt die als Datei auf dem Sharepoint Server (MOSS oder WSS) bzw. einem Fileshare gespei­cherte Masterpage in die Masterpage-Galerie der Site hoch und setzt sie als Default Masterpage.

Wenn man eine Sharepoint Site löschen will, die meh­rere Subsites hat

Wenn man eine Sharepoint Site löschen will, die meh­rere Subsites hat, ist das nicht mög­lich, ohne vor­her alle Subsites zu löschen. Dies kann ein ziem­lich auf­wän­di­ger Prozess sein, zumal das Löschen im Browser recht umständ­lich ist (--> Site anzei­gen --> Site Settings --> Delete this site --> Warnung wird ange­zeigt --> Delete --> Rückfrage mit JA beant­wor­ten --> Sharepoint springt…

File upload in eine Sharepoint Dokumenten-bibliothek (C#)

Wenn man pro­gramm­ge­steu­ert eine vor­han­dene Datei von der Festplatte in eine Sharepoint Dokumentenbibliothek hoch­la­den will, kann man dies mit­tels fol­gen­der C#-Befehle bewerk­stel­li­gen: SPSite objSite = new SPSite("http://server/sites/samples"); SPFolder objFolder = objSite.OpenWeb().GetFolder("Shared Documents"); string sourcePath = "C:\\test.doc"; FileInfo fi = new FileInfo(sourcePath); int fileSize = (int) fi.Length; SPFileCollection objFiles = objFolder.Files; byte[] myFile = new byte[fileSize]; FileStream mystream = new System.IO.FileStream(sourcePath,…

1 2 3