Sharepoint: Was basierend auf Inhaltstyp Listen passiert, wenn Inhaltstyp aktualisiert wird?

StackOverflow https://stackoverflow.com/questions/446451

Frage

Ich habe Art hypothetische Frage (zumindest für jetzt:))

Lassen Sie uns sagen, dass ich Liste erstellen, basierend auf einige benutzerdefinierte Content-Type. Ich füge einige 1000 Elemente in dieser Liste (in der Produktion). Dann Kunde kommt und er sagt, dass er diesen benutzerdefinierten Inhaltstyp ändern muß.

Was zur Liste passiert, wenn ich benutzerdefinierten Inhaltstyp ändern? Wird es automatisch (ich bezweifle) aktualisiert werden? Und was ist bereits erstellte Liste Artikel?

Hat jemand von euch etwas Erfahrung mit diesem haben?

War es hilfreich?

Lösung

So ein paar Fragen in Bezug auf Inhaltstypen:

Zu allererst Inhaltstypen gibt es in zwei Varianten: Website-Content-Typen und Listeninhaltstypen. Websiteinhaltstypen sind „Vorlagen“, die in einer Galerie befinden. Wenn ein Websiteinhaltstyp in einer Liste verwendet wird, wird der Inhaltstyp als Listeninhaltstyp auf der gegebene Liste instanziiert.

Zweitens könnten Ihre Content-Typen auf verschiedene Weise erstellt und bearbeitet werden, die Ihre Daten in der Datenbank vorhanden, was von drei Modi entscheiden würden.

Wenn Sie den Inhaltstyp mit der GUI erstellt oder durch benutzerdefinierte Code mithilfe der API, sowohl Ihre Website-Content-Typen und Ihre Listeninhaltstypen sind in dem „Datenbank-only“ Zustand in der Datenbank. Das bedeutet, dass es für die Definitionen des Inhaltstypen in der Datenbank sucht.

Wenn Sie den Inhaltstyp als Feature in CAML , Ihre Website Inhaltstyp geister (oder un-angepasst, wie wir sollen es in v3 nennen) in der Datenbank. Das basicly bedeutet, dass die Datenbank in dem Feature-XML in das 12-Nest für die Websitespalten sucht, die den Inhaltstyp bildet. So bedeuten, dass sollte, dass Sie die Funktion aktualisieren können, und Sie würden neue Website Spalten in der Update-Content-Typ zur Verfügung haben, nicht wahr?

Leider nicht: Denken Sie daran, dass wir auch Listeninhaltstypen haben? Die Bummer hier ist, dass diese Liste von Inhaltstypen verwenden Code instanziiert, so dass sie in der „Datenbank-only“ -Zustand. Es bedeutet, dass Ihre Änderungen würden nur in Ihrer Website Content-Typ zu sehen, aber nicht in der bestehenden Listen, den Inhaltstyp verwenden!

Es gibt mehrere Ansätze, um dieses Problem Fixierung hängt die Lösung auf, was Ihre Bedürfnisse sind und welche Art von Änderungen (Löschen von Feldern, Hinzufügen von Feldern, Ändern von Feldern) tun.

Zum Beispiel, würden Sie oft wollen Ihre bestehenden Artikel Meta-Daten zu halten, auch wenn die Art des Inhalts der Zeit ändert. Wenn Sie die Änderungen in der Liste Inhaltstyp durch Code durchsetzen, würden Sie die Daten in den geänderten / gelöschten Feldern gespeichert verlieren. Eine Lösung dieses Problems wäre eine völlig neue Art des Inhalts auf der alten Basis hinzufügen, aber mit den geänderten Felder. Sie würden den neuen Inhaltstyp (durch Code oder mit Feature XML) hinzufügen und einen Feature-Empfänger oder ein ähnliches verwenden, um den neuen Inhaltstyp für alle Listen propegate, die dem alten Inhaltstyp verwendet, und markieren Sie anschließend den alten Inhaltstyp als versteckt. Das würde es möglich machen, alte Meta-Daten zu halten, aber nicht neue Objekte mit anderen als den neuen Metadaten hinzuzufügen.

Der Ansatz in der anderen Antwort auf diese Frage wäre bevorzugt erwähnt werden, wenn Sie direkten Zugriff auf die Produktionsumgebung haben, und wenn Sie Ihre Kunden Governance-Plan erlaubt es. Wie bei anderen Artefakte in Sharepoint, es würde jedoch empfohlen wird Inhaltstypen in einer strukturierten Art und Weise einzusetzen. Das Hinzufügen von neuen Inhaltstypen in einer unstrukturierten Art und Weise würde Suchrelevanz beeinflussen (verwaltete Objekte) und auch die allgemeine Systematik der Website beeinträchtigen könnte (Seite Spalten nicht wieder verwendet werden, etc.), so dass, obwohl es möglich ist, diese Änderungen direkt in einem hinzufügen Produktionsstätte, ich würde es nicht empfehlen!

Das führt mich zu dem letzten Ansatz, der eine ist, würde ich, zumindest für künftige Inhaltstypen reccomend: Erstellen Sie Ihre Inhaltstypen programmatisch von Anfang an einem Feature-Receiver! So können Sie den wahren Zustand Ihrer Inhaltstypen immer wissen (Datenbank-only) und Sie können für die die Veränderungen in der Zukunft einen strukturierten Ansatz haben! Sie können mehrere Wege finden, um dies zu tun, indem ‚erstellen‚Inhaltstypen‘programmatisch Sharepoint‘

googeln

Der Vollständigkeit halber: Ich erwähnte drei Modi. Der letzte Modus Ihres Inhaltstyp in sein kann, ist „nicht duplizierte“. Dies bedeutet, dass Ihr Content-Typ wurde mit Feature XML erstellt, sondern dass es von der ursprünglichen XML-Quelle in dem abgeklemmt12 Bienenstock.

Mein Freund Søren Nielsen hat einige gute Punkte auf Inhaltstypen in Ihre Content Type Hierarchy Audit . Einige der oben beschriebenen Probleme lassen sich kurz in einem MSDN-Artikel erwähnt gefunden werden Updating Inhaltstypen . Gary Lapointe hat auch eine STSADM-Erweiterung, die einige der Probleme mit Inhaltstypen-Adressen finden Sie unter Propagieren Content Type Änderungen .

Sorry für die schimpfen, aber das Thema ist komplex und erfordert eine gründliche Erklärung jegliche Missverständnisse zu vermeiden.

Andere Tipps

Wenn Sie den Inhaltstyp aktualisieren gibt es eine Checkbox, Sie klicken können, um Kind Inhaltstypen zu aktualisieren. Durch die Überprüfung, dass das Feld werden die Listeninhaltstypen aktualisiert werden.

Beachten Sie, dass, wenn Sie tun nicht die Kontrollkästchen Arten Kind Inhalt dann zu aktualisieren, gibt es keine Möglichkeit das Update später zu erzwingen. Wenn Sie also nicht aktualisieren und später wollen Typen Kind Inhalt das Update haben müssen Sie zuerst das Update und die reaply es rückgängig zu machen.

.B

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top