Frage

Was ich gesehen habe

Mir ist gerade nach einem Upgrade von 2007 auf 2010 etwas ziemlich Ärgerliches bei SharePoint aufgefallen.

Das Aufgabenlistenschema in SharePoint 2007 hatte zuerst das Feld „Zugewiesen zu“.Dies bedeutete im Grunde, dass das Feld „Zugewiesen an“ in das Feld „int1“ auf Datenbankebene verschoben wurde.

In SharePoint 2010 steht im Aufgabenlistenschema der Vorgänger an erster Stelle.Ratet mal, was das für neue Listen bedeutet?Die Vorgängerspalten gehen in das Feld „int1“ auf Datenbankebene und „Assigned To“ fällt in „int2“.

Das Ändern der Feldreihenfolge für den Aufgabeninhaltstyp hilft nur, wenn Sie eine „leere benutzerdefinierte Liste“ verwenden und den Inhaltstyp direkt hinzufügen.Dadurch werden die Felder im Listenschema so angeordnet, wie es im Jahr 2007 aussah!Die „Aufgabenlistendefinition“ ignoriert dies jedoch und verwendet ihr eigenes Schema als Ausgangspunkt.Um eine Aufgabenliste zu erhalten, die dieselben zugrunde liegenden Datenfelder wie SharePoint 2007 verwendet, müssen Sie grundsätzlich die Inhaltstypen/Felder in der Liste überarbeiten (entfernen und hinzufügen), was dazu führt, dass das Schema mit dem des neu geordneten Inhaltstyps zurückgesetzt wird.

Warum ist das wichtig?

Viele von Ihnen fragen sich vielleicht, warum mir die SQL-Felder überhaupt wichtig sind, da ich sie nicht anfassen sollte usw.Ehrlich gesagt sollte es mir egal sein, aber Microsoft hat mich dazu gebracht!!!

Wir verwenden ein DataFormWebPart, um unvollständige Aufgaben von allen Websites zusammenzufassen.Erstellt mit SharePoint Designer.Für die standortübergreifenden rekursiven Bits sind verschiedene Optionen festgelegt, aber der wichtigste davon ist die CAML-Abfrage, und dieser Teil bereitet Kopfschmerzen.

<Eq>
    <FieldRef Name="AssignedTo" />
    <Value Type="Integer"><UserID Type="Integer"/></Value>
</Eq>

Es ist bekannt, dass das Obige auf der Grundlage von [mir] filtert, und es funktioniert, und zwar für alle im Jahr 2007 erstellten Websites!Aufgaben in neuen Listen nicht!... und ich weiß jetzt, dass das daran liegt, dass das zugrunde liegende SQL, das generiert wird, Folgendes tut:

int1 = [id]

...und nicht:

int1 = [id] or int2 = [id]

Ich bin (noch) nicht sicher, wie SharePoint intern die SQL erstellt, aber ich werde mir das vielleicht irgendwann einmal ansehen, weil es offensichtlich die CAML in SQL umwandeln muss und dabei eine Quelle verwendet, um die zugehörigen Feldzuordnungen nachzuschlagen.In jedem Fall wird die Quelle je nach alten oder neuen Listen unterschiedlich sein.Diesmal stellt sich heraus, dass aus irgendeinem Grund das alte verwendet wird, ABER so oder so bedeutet es, dass mir zugewiesene Aufgaben jetzt weggelassen werden.Derzeit werden nur drei Optionen angezeigt

  1. Erstellen Sie ein Skript, um alle aktuellen Aufgabenlisten zu aktualisieren, um die neue Aufgabenlistendefinition widerzuspiegeln.Nicht ideal und keine leichte Aufgabe.
  2. Stellen Sie in Zukunft sicher, dass alle mit der Aufgabenlistenvorlage erstellten Listen wie zuvor besprochen geändert werden (Entfernen/Hinzufügen von CTs und Feldern).
  3. Setzen Sie den Filter in XSLT ein und leiden Sie unter Leistung!

Mir ist klar, dass Nummer 2 als Vorlage verwendet werden könnte, aber die ursprüngliche Vorlage bleibt bestehen und die Abkehr von der MS-Vorlage wird wahrscheinlich in Zukunft zu Problemen führen!!

Hat das jemand beobachtet?Ich poste in dem Wissen, dass es wirklich keine Antwort darauf gibt.Nur Vorschläge/Meinungen.

War es hilfreich?

Lösung

Nun, ich habe viel Zeit damit verbracht, das oben Gesagte mitzuerleben.Es stellte sich heraus, dass das Problem durch einfaches Einfügen von „AssignedTo“ in den ViewFields-Teil der Abfrage behoben wurde!

Auch wenn ich das Feld nicht zur Anzeige verwende, wurde das Problem durch das Hinzufügen behoben.Die zugrunde liegenden Felder sind immer noch unterschiedlich, aber SharePoint weiß das schließlich und die große Abfrage verweist auf die richtigen Felder pro Web/Liste.

Süß.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top