Hi Lanz,

I meant, what code did you use to check how many docs there are in 
"collection-last"? That should be done in a different transaction.. 

Kind regards,
Geert

> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of Lanz
> Sent: vrijdag 6 augustus 2010 16:51
> To: General Mark Logic Developer Discussion
> Subject: Re: [MarkLogic Dev General] 
> xdmp:document-remove-collections not working
> 
> Thanks for your answer, I will add log($e) in my code.
> How I verify "collection-last" ?
> I call a user defined function :
>  local:clean-collection() as empty-sequence() { for $doc in
>  fn:collection("collection-last") return 
> xdmp:document-remove-collections(fn:document-uri($doc),
>  ("collection-last"))
>  };
> just before deleting and recreating new document.
> I never use a separate transaction.
> 
> Lanz
> 
> 
> On Fri, Aug 6, 2010 at 16:44, Geert Josten 
> <[email protected]> wrote:
> > Hi Lanz,
> >
> > Be carefull with 'catch($e) { }', I recommend adding an 
> xdmp:log($e). You might be missing an important warning here.
> >
> > Can you also tell us exactly how you are verifying 
> "collection-last"? Make sure to check in a separate transaction.
> >
> > Kind regards,
> > Geert
> >
> >>
> >
> >
> > drs. G.P.H. (Geert) Josten
> > Consultant
> >
> > Daidalos BV
> > Hoekeindsehof 1-4
> > 2665 JZ Bleiswijk
> >
> > T +31 (0)10 850 1200
> > F +31 (0)10 850 1199
> >
> > mailto:[email protected]
> > http://www.daidalos.nl/
> >
> > KvK 27164984
> >
> >
> > De informatie - verzonden in of met dit e-mailbericht - is 
> afkomstig van Daidalos BV en is uitsluitend bestemd voor de 
> geadresseerde. Indien u dit bericht onbedoeld hebt ontvangen, 
> verzoeken wij u het te verwijderen. Aan dit bericht kunnen 
> geen rechten worden ontleend.
> >
> >> From: [email protected]
> >> [mailto:[email protected]] On Behalf Of Lanz
> >> Sent: vrijdag 6 augustus 2010 16:20
> >> To: general
> >> Subject: [MarkLogic Dev General]
> >> xdmp:document-remove-collections not working
> >>
> >> Hi all,
> >>
> >> I have an issue with xdmp:document-remove-collections, the 
> way I use 
> >> this function does not work.
> >> Here is my code explanation :
> >> 1- I want to move XML documents from one input directory 
> to another 
> >> one (in reality, delete and recreate document)
> >> 2 - with xdmp:document-insert I add some collections to the new 
> >> document, 3 collections related to the date and one other 
> which flags 
> >> the document as the last one ("collection-last")
> >> 3- I need to keep only one document in the collection
> >> ("collection-last") : each time I "move" a document (see 
> 1-) I remove 
> >> all document from  ("collection-last") and then I set
> >> ("collection-last") to the processed document.
> >>
> >> But it seems that I can't remove all documents from 
> >> ("collection-last"), there is no error but it does not 
> work at all :
> >> all document keep this collection
> >> Help is appreciated., Thanks !
> >> Lanz
> >>
> >>
> >> Here is my code :
> >> xquery version '1.0-ml';
> >>
> >> declare function
> >> local:clean-collection() as empty-sequence() { for $doc in
> >> fn:collection("collection-last") return 
> >> xdmp:document-remove-collections(fn:document-uri($doc),
> >> ("collection-last"))
> >> };
> >> declare function
> >> local:document-move($targetURI as xs:string, $sourceURI as 
> xs:string, 
> >> $myCollection as xs:string*) as empty-sequence() {
> >>     try {
> >>         local:clean-collection(),
> >>         xdmp:document-delete($sourceURI),
> >>         let $permissions := 
> xdmp:document-get-permissions($sourceURI)
> >>         let $collections := $myCollection
> >>         let $quality := xdmp:document-get-quality($sourceURI)
> >>         return
> >>             xdmp:document-insert(
> >>                 $targetURI,
> >>                 doc($sourceURI),
> >>                 if ($permissions)
> >>                     then $permissions
> >>                     else xdmp:default-permissions(),
> >>                 if ($collections)
> >>                     then $collections
> >>                     else xdmp:default-collections(),
> >>                 $quality ),
> >>         let $prop-ns := namespace-uri(<prop:properties/>)
> >>         let $properties := 
> >> xdmp:document-properties($sourceURI)/node()
> >> [ namespace-uri(.) ne $prop-ns ]
> >>         return xdmp:document-set-properties($targetURI, 
> $properties)
> >>         }
> >>           catch($e) {
> >>         }
> >> };
> >>
> >> (:scan du repertoire d'entrée:)
> >> for $doc in xdmp:directory("/data/items/input/")
> >>
> >>     let $sourceURI := xdmp:node-uri($doc)
> >>     let $myDate := doc($sourceURI)/Items/Item[1]/ExportDate
> >>     let $myYeardate := fn:year-from-date(xs:date($myDate))
> >>     let $targetDir :=
> >> fn:concat("/data/items/repository/",$myYeardate ,"/")
> >>     let $myShortDate :=
> >> fn:adjust-date-to-timezone(xs:date($myDate ), ())
> >>     let $targetURI := fn:concat($targetDir,$myShortDate,".xml")
> >>     let $myCollection := ("collection-last", 
> >> fn:concat("collection-",$myShortDate),fn:concat("collection-",
> >> fn:string-join(fn:tokenize(xs:string($myShortDate),
> >> "-")[1 to
> >> 
> 2],"-")),fn:concat("collection-",fn:tokenize(xs:string($myShortDate),
> >> "-")[1]))
> >> order by $myDate
> >>     return local:document-move($targetURI,$sourceURI,$myCollection)
> >> _______________________________________________
> >> General mailing list
> >> [email protected]
> >> http://developer.marklogic.com/mailman/listinfo/general
> >>
> > _______________________________________________
> > General mailing list
> > [email protected]
> > http://developer.marklogic.com/mailman/listinfo/general
> >
> _______________________________________________
> General mailing list
> [email protected]
> http://developer.marklogic.com/mailman/listinfo/general
> 
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to