2 Stimmen

CAML-Aktualisierung läuft, ändert aber keine Daten (Sharepoint 2007)

Ich habe versucht, ein Batch-Update-Programm für eine MOSS-Site zu erstellen, basierend auf dem MSDN-Beispiel hier: http://msdn.microsoft.com/en-us/library/cc404818.aspx . Obwohl die Aktualisierungsabfrage fehlerfrei ausgeführt wird, ändern sich die Daten in der Liste leider nicht.

Hier ist der von mir verwendete Batch-Befehl:

<Method ID="3767">
  <SetList>8468cf0a-7e10-439c-a9b4-4197543e7b38</SetList>
  <SetVar Name="Cmd">Save</SetVar>
  <SetVar Name="ID">3767</SetVar>
  <SetVar Name="Date_x0020_of_x0020_Birth1">1971-12-18T00:00:00Z</SetVar>
</Method>

Nach der Ausführung des Batch-Update-Befehls:

string batchReturn = web.ProcessBatchData(batch);
returns:
<Results>
  <Result ID="3767" Code="0"></Result>
</Results>

Die Hauptversionsnummer des Listeneintrags wird inkrementiert, aber die Daten im Feld werden nicht geändert: Date_x0020_of_x0020_Birth1

Ich bin verblüfft.

Mehr Hintergrund: Date_x0020_of_x0020_Birth1 ist ein neues Feld, das dem Standard-Inhaltstyp für diese Liste hinzugefügt wurde. Es handelt sich um ein DateTime-Feld. Es ersetzt das ursprüngliche Feld Date_x0020_of_x0020_Birth (jetzt mit dem Anzeigenamen "Date of Birth(Text)"), das ein Textfeld war und daher Werte vor dem 01/01/1900 enthalten konnte. Bei der Stapelaktualisierung werden die Daten aus dem Textfeld nach Möglichkeit in das neue DateTime-Feld kopiert.

Das Einzige, was mir einfällt, ist, dass ich es benutze:

<SetVar Name="Cmd">Save</SetVar>

Vielleicht brauche ich den Befehl "Aktualisieren" oder "Speichern", also habe ich dies versucht:

<Method ID="1" Cmd="Update">
  <Field Name='ID'>3767</Field>
  <Field Name="Date_x0020_of_x0020_Birth1">1971-12-18T00:00:00Z</Field>
</Method>

Aber das kehrt zurück:

<Results>37671971-12-18T00:00:00Z<Result ID="1" Code="-2130575350">
  <ErrorText>Invalid URL Parameter

  The URL provided contains an invalid Command or Value. Please check the URL again.    
  </ErrorText>
</Result>
3767Date_x0020_of_x0020_Birth1
<Result ID="1" Code="-2147023673">
<ErrorText>The operation failed because an unexpected error occurred. (Result Code: 0x800704c7)</ErrorText>
</Result>
</Results>

1voto

djeeg Punkte 6660

"Aktualisieren" ist die richtige CMD, und es klingt so, als ob die Aktualisierung ordnungsgemäß abläuft (Aktualisierung der Versionsnummer).

Dann bleibt nur noch das Feld übrig, und das ist wahrscheinlich der "Name", den Sie verwenden.

Haben Sie versucht, das urn-Präfix zu verwenden (urn:schemas-microsoft-com:office:office#Date_x0020_of_x0020_Birth1)

Können Sie versuchen, ein anderes Feld zu aktualisieren, z. B. den Titel. (urn:schemas-microsoft-com:office:office#Titel)

Wenn das alles fehlschlägt, können Sie versuchen, die UpdateListItems in der lists.asmx zu verwenden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X