Sharepoint Client Object Model Einstellung ModifiedBy Feld

Ich versuche zu aktualisieren "ModifiedBy" - Feld in einer Sharepoint-Diskussionsrunde mit dem Client-Objekt-Modell. Mit der änderung der "Herausgeber" und "Autor" - Felder, die ich ändern kann, die "ModifiedBy", erscheint in der Listenansicht. Jedoch, wenn Sie einmal auf eine Diskussion post, die "ModifiedBy" Feld, das erscheint, dort (die mit dem Bild oben), spiegeln nicht die änderungen. Nach einigen Experimenten musste ich feststellen, dass der Bereich den ich ändern muss um dies zu korrigieren, wird als "MyEditor". Leider, ist dieses Feld schreibgeschützt ist.

In dem code unten, ich versuche, ändern Sie das nur-lese-Einstellungen das Feld auf false. Wenn ich mir die MyEditor Feld in Visual Studio-debugger, nachdem Sie die ExecuteQuery () - Zeile an der Unterseite des ersten Blocks zeigt sich, dass die ReadOnlyField Wert in der Tat wurde auf false gesetzt.

        sharepointContext.Load(discussionList);
        sharepointContext.ExecuteQuery();
        var fields = discussionList.Fields;
        sharepointContext.Load(fields);
        sharepointContext.ExecuteQuery();
        var field = fields.GetByInternalNameOrTitle("MyEditor");
        field.ReadOnlyField = false;
        field.Update();
        sharepointContext.Load(field);
        sharepointContext.ExecuteQuery();

Den obigen code ausführt, ohne Probleme. Das problem mit dem nächsten block:

        //...Code to initialize discussionItem...
        discussionItem["MyEditor"] = 0;
        discussionItem["Editor"] = 0;
        discussionItem["Author"] = 0;
        discussionItem["Body"] = "Testing";
        discussionItem["Title"] = "Hello Worlds";
        discussionItem.Update();
        sharepointContext.Load(discussionItem);
        sharepointContext.ExecuteQuery();

Wenn der code erreicht die ExecuteQuery() an der Unterseite des zweiten Blocks, es wirft eine ServerException mit der folgenden Meldung:

        Invalid data has been used to update the list item. 
        The field you are trying to update may be read only.

Sicher zu stellen, dass die MyEditor Feld war die Ursache der exception geworfen werden, habe ich auskommentiert, die Zeile wo ich es einstellen und lief der code wieder. Alles hat gut funktioniert. Ich verstehe nicht, was falsch ist, kann mir jemand helfen?

  • Warum glaubst du, dass es möglich sein sollte (und warum würden Sie brauchen, dass für normale Zwecke)? Ich würde nicht erwarten, dass diese Art von Feldern bearbeitbar sein..., Wenn Sie verwenden nicht-admin-Konto zu tun, und verwalten so ändern Sie diese Felder, es fühlt sich an wie ein bug zu mir.
  • Ich glaube, es sollte möglich sein, da scheint es vernünftig, dass, wenn ich legen Sie die ReadOnly-Eigenschaft eines Feldes auf false, sollte ich in der Lage, zu schreiben. Wenn nicht, welchen Sinn und Zweck hat die ReadOnly-Feld dienen? Ich bin mit der Migration der Daten für eine Diskussionsrunde aus einer anderen Datenbank in Sharepoint, und ich möchte die ModifiedBy Feld zu reflektieren, die person, die das Zitat, wie es jetzt ist, zeigt es meinen Namen statt). Mein Konto hat volle administrative Rechte.
Schreibe einen Kommentar