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

Était-ce utile?

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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top