【问题标题】:Facing issue when running data hub flow using REST API in Marklogic在 Marklogic 中使用 REST API 运行数据中心流时面临的问题
【发布时间】:2020-03-02 07:14:01
【问题描述】:

当我尝试使用 POST 方法从 REST API 运行数据中心流时,我收到了错误的请求错误。我正在使用邮递员来运行以下流程。我已经按照文档https://docs.marklogic.com/datahub/flows/run-flow-using-rest-client-api.html

但我可以使用 gradle 任务运行流程。谁能帮帮我?

http://localhost:8230/v1/resources/ml:runFlow?rs:flow-name=flow_name&rs:step=1

我收到以下错误

{ “错误响应”:{ “状态代码”:400, “状态”:“错误请求”, "messageCode": "XDMP-ARGTYPE", "message": "XDMP-ARGTYPE: cts.query(\"cts.andQuery([cts.collectionQuery(\\"test_coll"\\"), ...\") -- arg1 不是节点类型" }

【问题讨论】:

  • cts.andQuery 部分来自哪里? cts.query 不接受引用的查询..
  • 它是流程的一部分。已使用快速启动创建流程。请注意,此流程使用 gradle hubRunFlow 执行良好。只有当我尝试从 REST API 端点运行流程时,我才会遇到这个问题。
  • 我相信您遇到了这个错误,因为没有提供文档的 URI 给您希望在选项对象中运行流程。你能确认你没有传递像&rs:options={ "uris" : [ "comma-separated","uris","of","records","to","process" ] } 这样的东西吗?如果是这种情况,我将提供更详细的答案,说明为什么需要选项中的这些 URI,并建议提交 GitHub 问题以在这种情况下抛出更好的错误。
  • 谢谢'justdewit'。我刚刚发现我没有传递 URI 及其要求。我认为 URI 是一个可选参数。是的,如果我们得到一个更好的错误,那就太好了,并且文档可以用一些示例或所需参数的清晰度进行更新。再次感谢你:)

标签: marklogic marklogic-dhf


【解决方案1】:

为了使用mlRunFlow REST extension,必须将文档的URI 传递到端点。端点必须由外部编排工具驱动,以管理批处理/线程和工作分配。您可以阅读有关批处理/线程性能注意事项的更多信息here.

您遇到该错误消息的原因是,当 URI 不存在时,部分代码尝试针对与源查询匹配的整个文档集运行。这不受支持,并且端点应该抛出有关丢失 URI 的显式错误。我已经提交了GitHub issue here.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-08
    • 2022-06-28
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多