Xquery MarkLogic 8-除$URI之外的Corb传递参数

Xquery MarkLogic 8-除$URI之外的Corb传递参数,xquery,marklogic,marklogic-corb,Xquery,Marklogic,Marklogic Corb,因此,我有一个文件uris.xqy,它获取我想要在corb中操作的文档URI 然后我有docs.xqy,它带来了$URI 将变量$URI声明为xs:string external; 然后我对那个文件做了一些处理 现在我想从命令行向corb传递一个参数,这样 ./ml${Environment}corb--uris=/uris.xqy--modules=/docs.xqy--hello=world 当我执行上面的命令时,我可以访问hello及其docs.xqy中的内容world PROCE

因此,我有一个文件uris.xqy,它获取我想要在corb中操作的文档URI

然后我有docs.xqy,它带来了$URI

将变量$URI声明为xs:string external;

然后我对那个文件做了一些处理

现在我想从命令行向corb传递一个参数,这样

./ml${Environment}corb--uris=/uris.xqy--modules=/docs.xqy--hello=world


当我执行上面的命令时,我可以访问hello及其docs.xqy

中的内容world

PROCESS-MODULE.hello=world
CORB2 wiki在下面的部分对此进行了解释

若要使用自定义属性,必须在其前面加上任务名称和 在XQuery中声明为外部变量

要将集合名称传递给流程任务,请使用:

PROCESS-MODULE.collectionName=集合使用的名称


使用Roxy v1.7.4+,您现在可以使用
--
-D
开关指定任何CoRB选项,以包括自定义模块输入

如果升级到Roxy(或更高版本),可以通过执行以下操作将值发送到名为“hello”的docs.xqy模块外部变量:

./ml ${Environment} corb --uris=/uris.xqy --modules=/docs.xqy --PROCESS-MODULE.hello=world

UGHH花了我一点时间来阐述我的下一个问题……如果我通过roxy运行corb,看起来没有办法传入自定义参数。所以,如果我是对的,那么……我需要弄清楚如何直接运行corb(比如不通过Roxy)。这一切都是由顾问设置的,我还不确定这一切是如何运作的。啊哈!我想我刚才找到了!类似这样的内容:java-server-cp.:marklogic-xcc-6.0.2.jar:marklogic-corb-2.1.2.jar com.marklogic.developer.corb.Manager xcc-CONNECTION-URI[COLLECTION-NAME[XQUERY-MODULE[THREAD-COUNT[URIS-MODULE]MODULE-ROOT[MODULES-DATABASE[INSTALL[PROCESS-TASK][EXPORT-FILE-DIR[EXPORT-FILE-NAME[URIS-FILE]]]]]是的,您必须直接运行corb2。如果有帮助的话,您可以将所有这些添加到属性文件中,并将corb2指向属性文件。已经针对Roxy打开了一张票据,以添加对corb2的支持。Pull requests welcome。。如果必须将参数传递给URI-MODULE,那么该怎么办。我尝试了--URI-MODULE.ID=1,但这不起作用如果我必须将参数传递给URI-MODULE,在这种情况下该怎么办。我尝试了--URIS-MODULE.ID=1,但效果不太理想。您也可以尝试使用-DURIS-MODULE.ID=1将其指定为系统属性。再次检查您的URI模块,以确保正确声明了ID外部变量。糟糕,我声明了它,但传递了空的hence返回了未定义的外部变量。我做了必要的更改,现在按预期工作