MarkLogic 8 - Corb передает аргументы, отличные от $URI
Итак, у меня есть файл uris.xqy, который получает URI документа, с которым я хочу работать в corb.
Тогда у меня есть docs.xqy, который приносит $URI
declare variable $URI as xs:string external;
А потом я делаю некоторую обработку этого документа.
Теперь я хочу передать параметр corb из командной строки таким образом, чтобы
./ml ${Environment} corb --uris=/uris.xqy --modules=/docs.xqy --hello=world
Когда я выполню команду выше, я получу доступ к hello и его содержимому в docs.xqy.
2 ответа
Я думаю, что вы ищете, это пользовательская собственность
PROCESS-MODULE.hello=world
Вики CORB2 объясняет это на
https://github.com/marklogic/corb2/wiki/Other-Properties
Чтобы использовать пользовательское свойство, оно должно начинаться с имени задачи и объявляться как внешняя переменная в XQuery.
Чтобы передать имя коллекции в задачу PROCESS, используйте:
PROCESS-MODULE.collectionName=nameOfCollectionToUse
С Roxy v1.7.4+ вы можете теперь указать любые параметры CoRB, чтобы включить пользовательские входы модуля, используя либо --
или же -D
переключатели.
Если вы обновитесь до Roxy 1.7.4.1 (или более поздней версии), вы можете отправить значение во внешнюю переменную модуля docs.xqy с именем "hello", выполнив следующее:
./ml ${Environment} corb --uris=/uris.xqy --modules=/docs.xqy --PROCESS-MODULE.hello=world