2017-08-08 5 views
1

Wie kann ich diese XQuery so erstellen, dass sie in einem CORB-Job ausgeführt wird? Das zweite Modul zum Verarbeiten jedes Dokuments mit einem passenden Kandidaten-URI funktioniert nicht.So richten Sie CORB ein

URIS Modul

(:a module to select the candidate URIs to process:) 
xquery version "1.0-ml"; 
declare variable $target-collection := "/activity"; 
declare variable $update-collection := "/activity/analytics-read-added" 

let $uris := cts:uris((), 
         (), 
         cts:and-query((   
          cts:collection-query($target-collection), 
          cts:not-query(cts:collection-query($update-collection)) 
         )) 
) 
return (count($uris), $uris) 

Prozessmodul

(:a module to process each doc with a matching candidate URI:) 
declare variable $URI as xs:string external; 

xdmp:document-add-permission($URI,xdmp:permission("act-read-role","read")), 

xdmp:document-add-collections($URI,$update-collection) 

Antwort

2

Es gibt ein paar kleine Probleme mit dem Prozessmodul:

  • die Variable $update-collection Dezember Das URIS-Modul muss auch im Prozessmodul deklariert werden, wenn Sie es verwenden möchten.
  • Die Funktion zum Hinzufügen von Berechtigungen ist falsch geschrieben. Es ist Plural: xdmp:document-add-permissions()

jene Änderungen des Prozessmoduls Anwendung:

xquery version "1.0-ml"; 
(:a module to process each doc with a matching candidate URI:) 
declare variable $URI as xs:string external; 
declare variable $update-collection := "/activity/analytics-read-added"; 

xdmp:document-add-permissions($URI, xdmp:permission("act-read-role","read")), 
xdmp:document-add-collections($URI, $update-collection) 

Wenn Sie beheben müssen und untersuchen, warum Ihr Prozessmodul nicht funktioniert, ist es manchmal am einfachsten, den Inhalt einfügen des Prozessmoduls XQuery in die Query Console, weisen Sie der Variablen $URI einen Wert zu und führen Sie sie in QConsole aus.

Zum Beispiel:

declare variable $URI as xs:string external := "/some/test/doc.xml"; 
Verwandte Themen