Question

J'ai suivi du code sur la forme INFOPATH.Toute la colonne est mise à jour dans la liste cible, à l'exception de la colonne Personnes.Le vérifyby ne met pas à jour la colonne de la liste SP.(Dans la liste, je dois afficher le nom).J'ai même essayé displayName au lieu de CompteID.

Quelqu'un peut-il me dire ce que je fais mal.Merci d'avance.

item["LoadDate"] = MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:grpLoad/my:fldLoadDate", NamespaceManager).Value;
item["EndDate"] = MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:grpLoad/my:fldEndDate", NamespaceManager).Value;
item["checkRequired"] = MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:grpLoad/my:fldcRequired", NamespaceManager).Value;                                                                                                         
item["VerifiedBy"] = MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:grpDaa/my:CheckedBy/pc:Person/pc:AccountId", NamespaceManager).Value;

Était-ce utile?

La solution

Cela a fonctionné.

item["VerifiedBy"] = web.EnsureUser(MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/m‌​‌​y:grpDaa/my:CheckedBy/pc:Person/pc:AccountId", NamespaceManager).Value);

Autres conseils

Vous devrez peut-être formater l'utilisateur INFOPATH comme [ID]; # [Nom d'utilisateur]

Peut-être quelque chose comme ...

item["VerifiedBy"] = String.Format("{0};#{1}", MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:grpDaa/my:CheckedBy/pc:Person", NamespaceManager).Value), MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:grpDaa/my:CheckedBy/pc:Person/pc:AccountId", NamespaceManager).Value);

Quelques ressources que j'ai trouvées ceci étaient

Vous devez probablement construire la chaîne correcte dans le format suivant: "[UserID]; # [displayName]" ou utilisez une classe SPFieldUserValue pour cela.

Par exemple:

SPUser user = web.EnsureUser(MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/m‌​‌​y:grpDaa/my:CheckedBy/pc:Person/pc:AccountId", NamespaceManager).Value);
item["VerifiedBy"] = new SPFieldUserValue(web, user.ID, user.Name);

Notez que vous pourriez avoir un problème d'autorisation avec la méthode Assurhasser, si l'utilisateur n'est pas ajouté à la collection Site.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top