Enregistrement sur SharePoint via le redirecteur WebDAV. Obtenir un nouvel ID d'objet et perdre l'historique des versions
-
03-07-2019 - |
Question
J'utilise un redirecteur WebDAV pour modifier un fichier sur un référentiel SharePoint. Cela ressemble à chaque fois que je sauvegarde le fichier de cette façon, je reçois un nouvel objet qui remplace le précédent. Cela entraîne la perte de tout l'historique des versions.
Un fichier est ouvert via CreateFile avec:
nom_fichier - identique à celui utilisé pour l'appel en lecture seule à CreateFile (qui fonctionne)
DesiredAccess: GENERIC_READ | GENERIC_WRITE
dwShareMode: FILE_SHARE_READ SecurityHandle: la longueur est définie, mais les 2 autres champs sont 0
dwCreationDisposition: OPEN_EXISTING dwFlagsAndAttributes: FILE_ATTRIBUTE_NORMAL
hTemplateFile: NULL
Après avoir écrit le fichier dans le descripteur renvoyé par cet appel, si j'obtiens l'élément de liste pour ce fichier, le numéro d'objet (ID =) a été incrémenté. De plus, ce numéro d'identification semble être ajouté à chaque champ de l'élément de liste (séparé des données réelles par la séquence "#;")
Cet incrément du numéro d'identification (et la perte de l'historique des versions) ne se produisent pas si je récupère, édite, puis archive en utilisant l'interface Web; il conserve le même identifiant et l'historique des versions reste intact.
Comment puis-je éviter cela? Je dois conserver l'historique des versions.
La solution
Je recommanderais d'obtenir une trace HTTP.
Probablement, cela montrera que le redirecteur utilise un fichier temporaire, puis le déplace sur le fichier d'origine.
Correction: utilisez un client WebDAV plus intelligent (le lecteur Xythos est peut-être mieux).
Autres conseils
en utilisant WebDav, vous contournez le runtime de SharePoint, raison pour laquelle vous. Pour vous assurer d'obtenir l'historique des versions, vous devez utiliser la apis SharePoint . (services Web ou OM)