Le titre de l'élément de liste devient vide après la modification du document dans Word
-
10-12-2019 - |
Question
Je crée un nouveau document dans la bibliothèque de documents en utilisant ce code :
private SPListItem CreateNewDocument()
{
SPContentType documentContentType;
byte[] bytes;
string templatePath;
SPFile template;
SPFolder folder;
string documentFileName;
string documentPath;
SPFile document;
documentContentType = this.workflowProperties.Web.ContentTypes[this.contentType];
bytes = new byte[0];
if (!string.IsNullOrEmpty(documentContentType.DocumentTemplateUrl))
{
templatePath = documentContentType.DocumentTemplateUrl;
template = this.workflowProperties.Web.GetFile(templatePath);
bytes = template.OpenBinary();
}
folder = this.workflowProperties.Web.Folders[this.documentLibraryListTitle];
documentFileName = string.Format(Constants.msWordDocumentFileNameFormat, this.documentTitle);
documentPath = Path.Combine(folder.Url, documentFileName);
document = this.workflowProperties.Web.Files.Add(documentPath, bytes, true);
return document.Item;
}
Ensuite, dans la méthode suivante, j'attribue des valeurs de propriété au document :
private void SetDocumentProperties(SPListItem item)
{
SPUser author;
author = workflowProperties.Web.AllUsers[this.documentAutor];
item[SPBuiltInFieldId.Title] = this.documentTitle;
item[SPBuiltInFieldId.ContentTypeId] = this.workflowProperties.Web.ContentTypes[this.contentType].Id;
item[Constants.documentAuthorField] = author;
item.UpdateOverwriteVersion();
}
Tout cela fonctionne bien et le document est créé avec toutes les propriétés correctement remplies.Cependant, lorsque j'ouvre le fichier manuellement, que je le modifie dans MS Word, puis que je le réenregistre dans la bibliothèque de documents, le champ Titre est vide.J'apprécierais que quelqu'un puisse expliquer pourquoi cela se produit et comment y remédier ?Merci.
La solution
Résolu celui-ci.Il apparaît que les documents DOCX ne peuvent pas être de taille nulle et qu'ils nécessitent au moins un MainPart
pour ne pas être corrompu.Avoir le fichier DOCX approprié résout le problème de la propriété de titre manquante.