Hi Dave, ?
All of my logs are getting called including the one after the insert statement, I have pasted my code below. I tried inserting without xdmp:eval statement as well, but it did not work out xquery version "1.0-ml"; import module namespace cpf = "http://marklogic.com/cpf" at "/MarkLogic/cpf/cpf.xqy"; declare variable $cpf:document-uri as xs:string external; declare variable $cpf:transition as node() external; declare function local:insert-split-doc($split-doc as node(),$cpf:document-uri as xs:string, $content-id) { let $loggg := xdmp:log("Well! am inside") let $collections := ("ALL","CAMML_BOOK","CHAPTER_XML") let $document-status := xdmp:document-properties($cpf:document-uri)/*:properties/status/text() let $uri := if(fn:ends-with($cpf:document-uri,"package.xml")) then fn:concat(fn:tokenize($cpf:document-uri, "package.xml")[1],$content-id) else () let $log := xdmp:log(("The doc is",$split-doc)) return if(fn:empty($uri)) then xdmp:log("The uri is empty") else try{ xdmp:eval(' declare variable $split-doc as external; declare variable $uri as external; declare variable $collections as external; declare variable $document-status as external; xdmp:document-insert($uri,$split-doc,$collections)', ((xs:QName("split-doc"),$split-doc),(xs:QName("uri"),$uri),(xs:QName("collections"),$collections),(xs:QName("document-status"),$document-status)), <options xmlns="xdmp:eval"> <database>{xdmp:database("content")}</database> </options>) } catch($Exception){$Exception} }; if (cpf:check-transition($cpf:document-uri,$cpf:transition)) then try { let $doc := fn:doc( $cpf:document-uri ) let $log := xdmp:log(("The metadata uri ",fn:base-uri($doc))) let $content := $doc/*:consignment/*:item//*:content let $insert := for $item at $pos in $content[1] let $content-data-id := fn:concat($item/../fn:data(@sourcefile),"#",$item/fn:data(@id)) let $split-doc := <consignment> <content-meta> {$doc/*:consignment/*:item/*:metadata} </content-meta> <content-data id='{$content-data-id}'> {$item} </content-data> </consignment> return (local:insert-split-doc($split-doc,$cpf:document-uri,$item/../fn:data(@sourcefile)), xdmp:log( "split content ran OK" ) ,xdmp:log(("Thats good",$content-data-id))) return ($insert,cpf:success( $cpf:document-uri, $cpf:transition, () )) } catch ($e) { cpf:failure( $cpf:document-uri, $cpf:transition, $e, () ) } else ()? Thanks, Diwakar N
_______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
