Domanda

Ho uno scenario in cui ho bisogno di aggiornare un elemento della lista, ma non so l'ID interno della voce di elenco - da qui il seguente non funziona per me:

batchElement.InnerXml = "<Method ID='1' Cmd='Update'>" +
            "<Field Name='ID'>" + id + "</Field>" + 
            "<Field Name='DeliveryStatus'>" + newStatus.ToString() + "</Field></Method>";

Invece ho un altro campo nella lista chiamata ProcessID:

Quindi vorrei aggiornare lo stato di consegna in cui ProcessID = X

Questo è possibile utilizzando i servizi Web di SharePoint.

Una soluzione che stavo pensando di è quello di fare prima un selezionare per l'ID in base alla ProcessID - quindi aggiornare sulla base di questo ID, ma questa sembra una soluzione pazza, sicuramente gli inventori di MOSS CAML avrebbero fornito un modo per aggiornare un elemento della lista da parte di alcuni mezzi di una clausola in cui, o utilizzando un altro campo per la filtrazione, piuttosto che semplicemente vecchio ID?

Grazie

È stato utile?

Soluzione

Ho il sospetto che tu sia pazzo soluzione è quella giusta -. Selezionate per le voci per ottenere gli ID, poi update

Non è molto diverso per il caricamento di un documento - che può comportare un HTTP PUT, impostando i metadati, e poi selezionando la voce in - che è 3 richieste HTTP per quello che però dovrebbe essere 1 ...

Altri suggerimenti

Penso che si sta perdendo un paio di nodi. Si dovrebbe essere necessario il seguente:

<updates><Batch OnError='Continue'>{CAML}</Batch></updates>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top