comment ajouter un utilisateur à l'élément de liste sharepoint champ utilisateur à l'aide de l'api REST de sp2013?
J'ai une base de liste sharepoint avec les gens de terrain en elle, maintenant, je suis en train d'utiliser l'api rest pour ajouter un nouvel élément de liste et en essayant de mettre la personne de terrain à mon alias, mais il ne fonctionne pas et me jetant d'erreur ci-dessous. regarde comme il est de problème avec la façon dont mes données d'utilisateur est passé mais je ne pouvais pas en mesure de trouver de l'aide en ligne.
pouvez-vous aider les gars à la manière correcte de faire cet appel, toute aide est grandement appréciée.
mon Code----------
function runAjax(){ var d = JSON.stringify({"__metadata":{"type":"SP.Data.RepositoryItem"},"Owners":"-1;#[email protected]"});
jQuery.ajax({
url: "https://microsoft.sharepoint.com/sites/mysite/docstore/_api/web/lists/GetByTitle('Repository')/items(1580) ",
type: "POST",
headers: {
"accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"X-HTTP-Method": "MERGE",
"If-Match": "*"
},
data:d,
success: function (_a) {
console.log(JSON.stringify(_a));
},
error: function (_e) {
console.error(JSON.stringify(_e));
}
});}runAjax();
error I am getting is
Mise à jour échoue{"readyState":4,"responseText":"{\"erreur\":{\"code\":\"-1, Microsoft.SharePoint.Client.InvalidClientQueryException\",\"message\":{\"lang\":\"en-US\",\"value\":\"Un " PrimitiveValue' noeud avec une valeur non nulle a été trouvé lors de la tentative de lecture de la valeur d'une propriété de navigation; cependant, une StartArray' nœud, un "StartObject' nœud, ou un "PrimitiveValue" nœud avec la valeur null qui était attendu.\"}}}","le statut":400,"statusText":"Bad Request"}
Vous devez vous connecter pour publier un commentaire.
Comment définir l'Utilisateur valeur de champ à l'aide de SharePoint API REST
Assumer la fonction suivante est utilisée pour la création d'un élément de la liste à l'aide de SharePoint RESTE:
Le format de l'utilisateur valeur de champ:
'<user field name>' : <user id>
'<user field name>' : { 'results': [<array of user ids>] }
Plusieurs utilisateurs sur un champ de valeur
L'exemple montre comment créer un élément de tâche et préciser multivaleur
AssignedTo
champ:Utilisateur unique valeur de champ
L'exemple montre comment créer un élément de tâche et de spécifier un uniquevaleur
AssignedTo
champ:Le message d'erreur que vous recevez peuvent être source de confusion. Dans ce cas, si la Personne/Groupe de champ est nommé (afficher ou nom interne du champ de listes SharePoint) "Propriétaires", lors de l'utilisation de l'API REST de mettre à jour ce champ, il peut être quelque chose d'autre.
Pour connaître exactement la définition d'un champ, essayez l'URL suivante à l'aide de la méthode GET et étudier la valeur XML retourné.
Le XML peut ressembler à ce qui suit
Très probablement, vous remarquerez que le champ "Propriétaires" est nommé d'autre chose, comme "OwnersId". Vous aurez besoin pour reconstruire votre ajax publier des données sur l'utilisation exacte de nom de champ et de spécifier l'utilisateur Id propriété à la place de l'utilisateur LoginName bien que la publication de la valeur.
Le droit chemin doit être comme indiqué ci-dessous: (je suis sûr qu'il va sauver quelqu'un parfois)
Rappelez-vous le nom du champ doit contenir l'Id à la fin et le type doit être le type de champ que vous mettez à jour où, pour des personnes ou des groupes de (multiples) est une Collection(Edm.Int32).
Avez-vous essayé d'utiliser les Revendications de l'Encodage du nom d'utilisateur. C'est la façon que j'ai mise à jour de ces types de champs.
Exemple:
"i:0#.w/contoso\chris"
Vous avez besoin pour effectuer la POST-appel à l'aide de cette syntaxe pour l'Utilisateur de votre Domaine:
Si le champ est le nom de "Propriétaires", vous devez envoyer
"OwnersId": 1
à l'intérieur de votre appel RESTE du corps (Ajout de l'ID de votre nom de colonne et passer la valeur du nom d'utilisateur).Si vous avez besoin de vérifier quel est le nom exact de la colonne Utilisateur, commencez votre F12 Outils de Dev dans le navigateur, lancer la Capture Réseau et tapez votre URL dans le navigateur.
Dans le corps de la réponse, vous verrez les noms exacts de toutes les colonnes (comme dans le RESTE)