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.

Était-ce utile?

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.

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