marklogic - 触发在 Marklogic 中启动 http 通信的林中的数据创建

标签 marklogic

几个问题

  1. 为给定林创建触发器时,使用带有林名称的 trgr:collection-scope 函数是否正确?

https://docs.marklogic.com/trgr:trigger-data-event

  • 我有兴趣执行一个 jsp 脚本,该脚本在将数据提交发布到林时将参数传递给脚本。以下是正确的方法吗?

    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() 
    );
    
  • 使用以下 http.xqy 模块,当前用于测试仅接受名为 filename 的参数

    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>)
    
  • 是否可以将数据库中创建的导致触发器触发的文件的名称传递给模块脚本?
  • 谢谢

    康特

    最佳答案

    你看过Alerting API吗? ?它为需要对匹配(反向)查询的数据的数据库更改使用react的应用程序抽象了低级触发器详细信息。

    警报 API 通过外部变量自动注入(inject)有关触发操作的文档的上下文。例如,您的操作(响应警报触发器而调用的代码)将包含如下内容:

    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;
    

    至于您的具体问题,trgr:collecion-scope()将集合的名称作为参数,通常是 URI。顾名思义,它允许您将触发器的权限限制为特定集合。一般来说,您的应用程序代码不应该关注森林。数据库在抽象数据的底层组织方式方面做得很好。直接与森林一起工作的代码可能效率不高,并且可能会破坏安全检查,例如重复 URI 检测。

    从警报 API 开始。

    关于marklogic - 触发在 Marklogic 中启动 http 通信的林中的数据创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36772309/

    相关文章:

    java - 使用 Java 和 MarkLogic 的项目

    Marklogic - 在 java api 中将 pojo 作为 json 文档插入

    javascript - 如何在 Marklogic JSON 文档中插入多于一个的三元组?

    xquery - 我可以在 Marklogic Server 的 xquery 中声明一个全局变量吗?

    marklogic - 是否可以在没有管理员角色的情况下在 MarkLogic 9 上使用 ml-gradle?

    java - Gradle 项目转换为 Maven

    xml - MarkLogic:使用 XQuery 将 XML 文档转换为 XML 字符串

    xquery - 查询 MarkLogic 数据的最佳 UI 界面/语言

    marklogic - 在单个林中拥有特定类型数据的优点和缺点

    javascript - 在 Marklogic 中,我有一个自定义 JavaScript 函数。如何通过 REST API 调用它?从CURL调用它的过程是怎样的?