Hello,

I have the following CPF module in my system:


(:
 Copyright (c) 2017. EasyMetaHub, LLC - All Rights Reserved
 Unauthorized copying of this file, via any medium is strictly prohibited
 Proprietary and confidential
:)
xquery version "1.0-ml";

import module namespace cpf="http://marklogic.com/cpf"; 
  at "/MarkLogic/cpf/cpf.xqy";

declare namespace mm="http://easymetahub.com/metamodel";;

declare variable $cpf:document-uri as xs:string external;
declare variable $cpf:transition as node() external;

if (cpf:check-transition($cpf:document-uri,$cpf:transition)) 
then 
    try {
        let $doc := fn:doc($cpf:document-uri)
        let $url := 
fn:concat("http://localhost:8080/easymetahub/HarvestJDBCData?url=";, 
$cpf:document-uri)
        let $results := xdmp:http-get($url, <options 
xmlns="xdmp:http"></options>)
        return
            xdmp:node-replace($doc/harvest/state, <state>processed</state>),
            xdmp:log( "harvest JDBC data ran OK" ),
            cpf:success($cpf:document-uri, $cpf:transition, ())
    } catch ($e) {
        cpf:failure($cpf:document-uri, $cpf:transition, $e, ())
    }
else ()



The java code calls the following to get the $cpf:document-uri

ContentSource cs = null;
Session session = null;
RequestOptions options = null;

cs = ContentSourceFactory.newContentSource(new 
URI("xcc://admin:admin@localhost:9020"));
session = cs.newSession();
options = new RequestOptions();

options.setQueryLanguage("xquery");

Request request = null;
ResultSequence rs = null;
XdmNode item = null;


request = session.newAdhocQuery("doc (\"" + serviceURL + "\")/harvest", 
options);
request.setOptions(options);
rs = session.submitRequest(request);
item =  (XdmNode) rs.next().getItem();

Node harvestNode = (Node) item.asW3cNode();

I am then trying to update the counter for the processed and errors as well as 
listing the documents that were created in the system during the harvest.  The 
following code fails.

if (isSuccess) {
    Request successrequest = null;
    successrequest = session.newAdhocQuery("xdmp:node-replace(doc (\"" + 
serviceURL + "\")/harvest/processing/processed/count, <count>" + successes + 
"</count>", options);
    successrequest.setOptions(options);
    updaters = session.submitRequest(successrequest);
    successrequest = session.newAdhocQuery("xdmp:node-insert-after(doc (\"" + 
serviceURL + "\")/harvest/processing/processed/count, <document>" + entityPath 
+ "</document>", options);
    successrequest.setOptions(options);
    updaters = session.submitRequest(successrequest);
}

if (isFailure) {
    Request failurerequest = null;
    failurerequest = session.newAdhocQuery("xdmp:node-replace(doc (\"" + 
serviceURL + "\")/harvest/processing/errors/count, <count>" + failures + 
"</count>", options);
    failurerequest.setOptions(options);
    updaters = session.submitRequest(failurerequest);
    failurerequest = session.newAdhocQuery("xdmp:node-insert-after(doc (\"" + 
serviceURL + "\")/harvest/processing/errors/count, <document>" + entityPath + 
"</document>", options);
    failurerequest.setOptions(options);
    updaters = session.submitRequest(failurerequest);
}


Does anyone have any suggestions?

Thank you,

Loren Cahlander

CTO | Easy Meta Hub LLC.

4819 Emperor Blvd, Suite 400, Durham, NC 27703 
651-747-6910 | loren.cahlan...@easymetahub.com 
<mailto:loren.cahlan...@easymetahub.com> | 
https://www.linkedin.com/in/lorencahlander 
<https://www.linkedin.com/in/lorencahlander> | @lcahlander 
www.easymetahub.com <http://www.easymetahub.com/>
_______________________________________________
General mailing list
General@developer.marklogic.com
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to