Take a look at 
https://blakeley.com/blogofile/2013/06/21/introduction-to-multi-statement-transactions/
 — it talks about using MST with DLS.

-- Mike

> On Dec 21, 2014, at 22:17, Kapoor, Pragya <[email protected]> wrote:
> 
> Hi,
> 
> I need to run multistatement transcations in if else using dls library .
> The below code is throwing error XDMP-CONFLICTINGUPDATES please let me know, 
> what is the solution to this problem.
> 
> Moreover, 
> I tried running the below  code with declare option xdmp:transaction-mode 
> "update";​ and using xdmp:commit() but still the same problem.
> 
> I need to get the documents from a directory, the first document is version 1 
> of the doc, the second document in the directory is version 2 of the doc.
> 
> 
> Code:
> 
> for $FileEntry in $sortList
>   let $Filename := functx:substring-after-last(xdmp:node-uri($FileEntry),'/')
>     let $count := fn:count(fn:tokenize($Filename,'_'))
>     let $docUri := if($count=5) then 
> fn:concat($PrefixURI,functx:substring-before-last($Filename,'_'),'.xml')  
> else fn:concat($PrefixURI,$Filename)     
>     let $contents := $FileEntry
> let $logsXML :=
> if (fn:doc-available($docUri) eq fn:false()) then 
>                try{
>                 
>                         (: Insert the document :)
>                       (dls:document-insert-and-manage(
>                        $docUri,
>                         fn:false(),
>                        $contents,
>                         "created",
>                         (xdmp:permission("dls-user", "read"),
>                          xdmp:permission("dls-user", "update")),
>                         "historic"),
>                       xdmp:document-add-collections(
>                        $docUri,
>                         "latest"),
>                       xdmp:document-remove-collections(
>                             $docUri,  "historic"), 
>                   (: Create metadata :)
>                        local:createMetadata($docUri,$contents),
>                        local:createEvents($docUri,$contents),
>   local:insertPDF($transId)
>                        ),
>   
>                       (
>                          <uris>
>                                  <uri>{$docUri}</uri>
>                                  <status>Success</status>
>                                  <info>Document inserted</info>
>                                  <transId>{$transId}</transId>
>                         </uris>
>                        )
> 
>         
>        } catch($e)
> {
> <uris>
> <uri>{ $docUri }</uri>
> <status>Failure</status>
> <info>{ $e/error:format-string/text() }</info>
> <transId>{ $transId }</transId>
> </uris>
> }
> else
>             try{   
>                 (: Update the document :)
>                 let $update:=
> ( dls:document-checkout-update-checkin(
> $docUri,
> $contents,
> "updated",
> fn:true(),
> (),
> ("historic")),
> xdmp:document-add-collections(
> $docUri, "latest"),
> xdmp:document-remove-collections(
>   $docUri,  "historic"),
> (: Update metadata :)
>                        local:updateMetadata($docUri,$contents),
>                        local:createEvents($docUri,$contents),
>                         local:insertPDF($transId)
>                        )
> return 
>    (
>                          <uris>
>                                  <uri>{$docUri}</uri>
>                                  <status>Success</status>
>                                  <info>Document inserted</info>
>                                  <transId>{$transId}</transId>
>                         </uris>
>                        )
>               
>        } catch($e)
>         {
>         <uris>
>             <uri>{ $docUri }</uri>
>             <status>Failure</status>
>             <info>{ $e/error:message/text() }</info>
>             <transId>{ $transId }</transId>
>         </uris>
>         }
> 
> "This e-mail and any attachments transmitted with it are for the sole use of 
> the intended recipient(s) and may contain confidential , proprietary or 
> privileged information. If you are not the intended recipient, please contact 
> the sender by reply e-mail and destroy all copies of the original message. 
> Any unauthorized review, use, disclosure, dissemination, forwarding, printing 
> or copying of this e-mail or any action taken in reliance on this e-mail is 
> strictly prohibited and may be unlawful."
> _______________________________________________
> 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