2017-10-09 3 views
0

Je souhaite mettre à jour manuellement un document géré sans l'incrémenter dans une nouvelle version.Mise à jour manuelle des documents gérés sans incrémenter la version

J'ai remarqué que la mise à jour du document référencé par l'uri ne se propage pas au document pointé par la dernière version - j'ai besoin de faire une autre mise à jour directement dans la dernière version.

Y at-il de mauvaises conséquences de ce hack ou quelque chose que j'ai raté?

let $uri := "/docs/doc.xml" 

let $doc := fn:doc($uri)/doc 
let $_ := xdmp:node-replace($doc/element/text(), text { "changed" }) 

let $hist := dls:document-history($uri) 
let $docFromHist := dls:document-version($uri, max(data($hist//dls:version-id)))/doc 
let $_ := xdmp:node-replace($docFromHist/element/text(), text { "changed" }) 

Répondre

0

Selon la documentation que vous ne pouvez pas utiliser les fonctions de mise à jour de nœud sur les documents sous gestion des services de bibliothèque:

https://docs.marklogic.com/guide/app-dev/dls#id_87706

Vous ne pouvez pas utiliser les fonctions de mise à jour de nœud, comme xdmp: nœud remplacer, avec des documents gérés.

Au lieu de cela vous devez exécuter la fonction appropriée de la bibliothèque DLS, qui dans ce cas serait dls:document-update()