Bonjour,
Mon appli se connecte à un SharePoint Foundation 2013 pour la gestion de ses pièces jointes, et le cahier des charges veut qu'un fichier ait des propriétés supplémentaires spécifiques.
Je me suis donc orientée vers la création d'un type de contenu custom, héritant de Document (0x0101), et à la création de Fields custom liés à ce ContentType.
J'ai tout implémenté dans le code à l'aide des exemples MSDN : https://msdn.microsoft.com/fr-fr/lib...or=-2147217396
Jusque là, tout va bien. Le nouveau contentType est créé, les Fields aussi et les deux sont liés.
Au moment d'upload un fichier vers le SharePoint, je ne parviens pas à forcer le ContentType du fichier.
Voici un exemple des multiples versions testées :
Ici, je n'ai aucune exception, aucune erreur. Sauf que le newFile rétablit le ContentTypeId qu'il avait juste avant que je ne le force.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Microsoft.SharePoint.Client.Folder pathFolder = GetPathFolder(context, "<url>"); ContentTypeCollection contentTypes = context.Web.ContentTypes; context.Load(contentTypes); context.ExecuteQuery(); ContentType type = contentTypes.FirstOrDefault(c => c.Name == "customContentType"); FileCreationInformation fci = new FileCreationInformation() { Content = contenuDocument, Url = description.Nom }; Microsoft.SharePoint.Client.File newFile = pathFolder.Files.Add(fci); if (type != null ) { newFile.ListItemAllFields["ContentTypeId"] = type.Id.ToString(); newFile.ListItemAllFields.Update(); context.ExecuteQuery(); }
Le fichier est bien upload, mais il n'a pas pris en compte mon customContentType.
Donc évidemment après ça, quand je tente d'alimenter une propriété custom, il me dit qu'elle n'existe pas. Normal j'imagine, puisque le fichier n'a pas le bon type.
Toute piste est la bienvenue, merci d'avance
Cordialement
Partager