Comment mettre à jour un élément de liste de services Web en utilisant une clause where?
-
16-10-2019 - |
Question
J'ai un scénario où je dois mettre à jour un élément de liste, mais je ne sais pas l'ID interne de l'élément de la liste - d'où ce qui suit ne marchera pas pour moi:
batchElement.InnerXml = "<Method ID='1' Cmd='Update'>" +
"<Field Name='ID'>" + id + "</Field>" +
"<Field Name='DeliveryStatus'>" + newStatus.ToString() + "</Field></Method>";
Au lieu de cela, j'ai un autre champ dans la liste appelée ProcessID:
Je voudrais mettre à jour le statut de livraison où ProcessID = X
Est-ce possible en utilisant des services Web SharePoint.
Une solution que je pense est d'abord faire une sélection pour l'ID en fonction de la ProcessID - puis mise à jour en fonction de cet ID, mais cela semble être une solution fou, sûrement les inventeurs de MOSS CAML auraient fourni un moyen de mettre à jour un élément de liste par des moyens d'une clause where, ou en utilisant un autre domaine pour la filtration plutôt que tout simplement vieux ID?
Merci
La solution
Je pense que vous êtes fou solution est la bonne -. Sélectionner les éléments pour obtenir les identifiants, puis mise à jour
Il est pas très différent de télécharger un document - qui peut impliquer un PUT HTTP, la mise en métadonnées, puis vérifier la pièce - qui est 3 demandes HTTP pour ce que je sois bien 1 ...
Autres conseils
Je pense que vous manque quelques nœuds. Vous avez besoin de ce qui suit:
<updates><Batch OnError='Continue'>{CAML}</Batch></updates>