在启动Marklogic中http通信的林中触发数据创建
几个问题在启动Marklogic中http通信的林中触发数据创建,marklogic,Marklogic,几个问题 为给定林创建触发器时,使用trgr:collection scope函数和林名称是否正确 我对执行一个jsp脚本感兴趣,该脚本在向林发布数据提交时将参数传递给脚本。下面的方法正确吗 xquery version "1.0-ml" import module namespace trgr="http://marklogic.com/xdmp/triggers" at "/MarkLogic/triggers.xqy"; trgr:create-trigger("execut
xquery version "1.0-ml"
import module namespace trgr="http://marklogic.com/xdmp/triggers"
at "/MarkLogic/triggers.xqy";
trgr:create-trigger("executeCreateBlock", "Execute Block Creation",
trgr:trigger-data-event(
trgr:collection-scope("/str-1/"),
trgr:document-content("create"),
trgr:post-commit()),
trgr:trigger-module(xdmp:database("str-1-modules"), "/modules/", "http.xqy"),
fn:true(),
xdmp:default-permissions()
);
xquery version "1.0-ml";
let $payload := '{ "filename": $filename}'
return xdmp:http-post("http://chain1.xmp.com:8080/CreateBlock/response.jsp",
<options xmlns="xdmp:http">
<data>{$payload}</data>
</options>)
xquery版本“1.0-ml”;
让$payload:='{“filename”:$filename}'
返回xdmp:http post(“http://chain1.xmp.com:8080/CreateBlock/response.jsp",
{$payload}
)
xquery version "1.0-ml";
declare namespace alert = "http://marklogic.com/xdmp/alert";
declare variable $alert:config-uri as xs:string external;
declare variable $alert:doc as node() external;
declare variable $alert:rule as element(alert:rule) external;
declare variable $alert:action as element(alert:action) external;
至于您的特定问题,将集合的名称作为参数,通常是URI。顾名思义,它允许您将触发器的权限限制为特定集合。一般来说,应用程序代码不应该与林有关。数据库在抽象底层数据的组织方式方面做得很好。直接使用林的代码可能效率不高,并且可能会破坏安全检查,如重复URI检测
从警报API开始。管理API也应该有助于配置警报/触发器。谢谢,我将研究这些。到目前为止,对于配置触发器,我一直在编辑java api客户端com.marklogic.client.example.util.Bootstrapper,将installBootstrapExtension方法转换为installTriggers方法,该方法调整url HttpPut=new HttpPut(“http://“+host+”:“+port+”/manage/v2/databases/triggers/triggers?method=POST”);以及setEntity xquery