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