Posts mit dem Label ListInstance werden angezeigt. Alle Posts anzeigen
Posts mit dem Label ListInstance werden angezeigt. Alle Posts anzeigen

Donnerstag, 30. Juli 2009

Listeninstanzen - Cannot complete this action

Werden bei einer Solution ListInstances verwendet und sollen dann an speziell diese Listen CustomActions angehängt werden, empfiehlt es sich, anstelle der Standard-TemplateTypes (100, 101, etc..) eigene IDs ab 10000 zu verwenden.

Diese Änderung muss aber überall nachgezogen werden, sonst kommt es beim Erstellen der SiteCollection schnell zu der nichts sagenden Fehlermeldung "Cannot complete this action".



Die TemplateType-ID muss angepasst werden in
  • CustomAction
  • ListInstance
  • ListTemplate
  • Schema.xml

Dienstag, 7. Oktober 2008

Listeninstanzen in Solutions vorbefüllen

Bisher haben wir Listen, die per Solutions installiert werden und von Haus aus über Werte verfügen sollten mit Hilfe von FeatureReceivern befüllt. Da es sich dabei um eine Vielzahl von Listen mit mehreren Spalten handelte, bot es sich an, das ganze über eine Befüll-Methode abzuarbeiten, die ihre Daten aus den entsprechenden Settings-Dateien beziehen.

Nun arbeite ich aktuell aber an einem sehr kleinen Projekt welches derartigen Aufwand nicht gerechtfertigt: im Rootweb wird eine Liste mit vier einzelnen Einträgen benötigt, die sich nicht mehr ändern werden.

Diese Werte werden nun einer ListInstance mitgegeben:


<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- PicklistRole -->
<ListInstance FeatureId="39fba828-57af-4c1f-ba42-19cc13e8ad99"
TemplateType="100"
Id="PicklistRoleList"
Title="$Resources:root_lists,picklistRoleInstanceTitle;"
Description="$Resources:root_lists,picklistRoleInstanceDescription;"
OnQuickLaunch="FALSE"
Url="$Resources:core,lists_Folder;/Picklist Rolle">
<Data>
<Rows>
<Row>
<Field Name="Title">Projektmanager</Field>
</Row>
<Row>
<Field Name="Title">Technischer Leiter</Field>
</Row>
<Row>
<Field Name="Title">Entwickler</Field>
</Row>
<Row>
<Field Name="Title">Projektassistenz</Field>
</Row>
</Rows>
</Data>
</ListInstance>
</Elements>


Diese ListInstance wird im Feature eingebunden welches dann über die WebFeatures-Sektion der onet.xml aktiviert wird und daraufhin die Liste mitsamt den Einträgen bereitstellt:

Montag, 14. Juli 2008

Site Provisioning Reihenfolge

Eine schnelle Suche nach einer Auflistung, in welcher Reihenfolge Einträge der onet.xml abgearbeitet werden, brachte mich auf folgenden Blog-Eintrag der MSDN: *click*

Ich habe den Eintrag mal ins Deutsche übersetzt:

SharePoint stellt in dieser Reihenfolge bereit:
  1. die globale onet.xml
  2. in der onet.xml definierte SiteScope-Features in der Reihenfolge, wie sie angegeben sind
  3. Stapled Features auf SiteScope-Ebene in "zufälliger" Reihenfolge
  4. in der onet.xml definierte WebScope-Features in der Reihenfolge, wie sie angegeben sind
  5. Stapled Features auf WebScope-Ebene in "zufälliger" Reihenfolge
  6. in der onet.xml definierte List Instanzen
  7. in der onet.xml definierte Modules
Das bedeutet:
  1. SiteFeatures sollten niemals von etwas abhängig sein, was durch ein WebFeature bereitgestellt wurde. Da WebFeatures immer nach SiteFeatures ausgewertet werden, kann ein SiteFeature nicht auf eine Resource angewiesen sein, die in einem WebFeature bereitgestellt wird.
  2. Features können nicht von Listen oder Dateien abhängig sein, die über die onet.xml bereitgestellt werden. Features werden vor den Dateien und Modulen, die in der onet.xml enthalten sind, verarbeitet. Trotzdem können List Instanzen und Dateien, die in der onet.xml definiert sind, Abhängigkeiten auf sich in Features befindenden List Definitionen oder List Instanzen enthalten.
  3. In der onet.xml oder in WebFeatures, die sich innerhalb des -Tags befinden, definierte List Instanzen und Module sollten niemals Abhängigkeiten auf "Stapled Features" enthalten. "Stapled Features" sind flüchtig und es kann sein, dass sie nicht im Stapel abgearbeitet werden wenn der Administrator die Konfiguration so einstellt.

Freitag, 11. Juli 2008

Beschreibungen der Attribute der Solution-Bestandteile

Der Blog von André Vala bietet sehr sehr nützliche Informationen zu den einzelnen Teilen einer Solution, z.B. alles über ListInstanzen, ListTemplate-Features, ContentType-Features, SiteColumn-Features inklusive einer Beschreibung der wichtigen XML-Tag-Attribute.

List Instance Features
List Template Features
Site Content Type Features
Site Column Features