问题标签 [marklogic-dhf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
94 浏览

json - 未找到数据中心协调架构

使用 MarkLogic DHF,我试图从我的协调流程中调用一个 json 验证函数。除了验证功能没有找到架构外,其他流程都运行良好。协调文件最终所在的 *-FINAL DB 关联了我的 *-SCHEMAS db,并且我的模式文件存储在该 *-SCHEMAS db 中的简单 URI 下。如何确定 DHF 协调流程在哪里寻找架构?

更新:通过反复试验,我确定在将我的 json 模式加载到我的服务器的基本“模式”数据库后,协调流程能够为 jsonValidate() 函数找到它。但我不明白为什么它在最终模式数据库中找不到它,这是构建加载模式的地方。

更新 2.0:使用@grtjn 下面的建议,我确定协调流的当前数据库不是最终数据库,而是暂存数据库。因此,当我在暂存模式数据库中手动加载模式时(具有适当的权限),流程会找到它。所以现在我只需要弄清楚如何让 gradle deploy 将架构放入暂存架构数据库而不是最终架构数据库。

0 投票
1 回答
52 浏览

marklogic - MarkLogic - JSON 到 XML 的转换 - 处理多个属性

我有一个文件如下。

我的要求是在转换为 XML 时将 id(在 PolicyInfo 下)和 idref(在 NameInfo 下)转换为属性。我可以使用下面的代码来处理一个属性。

我尝试了以下选项,但它们都不起作用。

有没有办法在转换为 XML 时处理多个属性?

提前致谢!

0 投票
1 回答
69 浏览

marklogic - 更新到 DataHub 框架 4.1.0 后 Writer.sjs 中的 XDMP-CONFLICTINGUPDATES 错误

我正在使用 javascript 进行协调,在 MarkLogic DHF 2.1.0 中运行良好。我们最近升级到 MarkLogic Data Hub Framework 4.1.0。

升级引起了问题,因为我的大多数文档现在都没有得到协调。协调从收集器到内容、主要和三元组运行良好,但在检查跟踪后,我发现问题出在 Writer.sjs 部分。

以下是 Writer.sjs 中的错误片段:

下面是作者中的当前代码:

"消息":"冲突更新","堆栈":"XDMP-CONFLICTINGUPDATES: xdmp.documentInsert(\"/FWE/WorkOrder/Thailand/1003160.xml\", XMLDocument(\"http://marklogic.com/entity -services'>......\"), Sequence({capability:\"read\", roleId:\"7089338530631756591\"}, {capability:\"update\", roleId:\"15520654661378671735\" }), Sequence(\"WorkOrder\", \"FWEWorkOrder\")) -- 冲突更新 xdmp.documentInsert(\"/FWE/WorkOrder/Thailand/1003160.xml\

请注意,我的记录中很少有(约占被协调的总记录的 1%)没有遇到任何问题。

以下是我之前在 writer.sjs 中的代码:

您对导致XDMP-CONFLICTINGUPDATES错误的原因有任何想法吗?

0 投票
1 回答
34 浏览

logging - 设置 MarkLogic 日志文件的最大大小

在我们的开发环境中,我们有一些日志文件会在特定日期超过 1GB。我们能否设置一个大小限制,例如 250MB,以便在达到大小限制时日志文件将继续在新创建的日志文件中记录。这将在我们的案例中为特定日期生成 4 个日志文件,而不是 1 个巨大的日志文件。

0 投票
1 回答
258 浏览

warnings - 记录 MarkLogic 中显示的警告:清除过期的 DatabaseQueryPath MarkLogic

通过谷歌搜索互联网后,我们找不到任何正确答案。这是我们的情况...

我们在显示此(警告)信息的 Windows 事件日志中遇到一些警告:

清除过期DatabaseQueryPath 5845128627522525605,database=Security,timeLimit=598,expired=2019-01-18T12:41:00,started=2019-01-18T12:31:02

谁能解释这个警告信息的含义?

0 投票
1 回答
32 浏览

marklogic - 我正在尝试在我的数据中心项目中使用 marklogic smart-mastering 不断出错

我将最小示例文件夹内容复制到我已经安装了 ML9 和 DHF4 的环境中。当我尝试运行命令来安装智能母带时,我收到一个错误 - 找不到命令。

我在 EC2 服务器上运行并发出自述文件中所述的以下命令:

[ec2-user@server smf-hub]$ gradle mlDeploy

-bash:gradle:找不到命令

我部署了以下文件:

gradle (文件夹), src (文件夹), build.gradle, gradle.properties, gradlew, gradlew.bat, README.md

我在这里想念什么?

0 投票
1 回答
51 浏览

marklogic - MarkLogic:HTTP 调用的详细日志

MarkLogic 版本:9.0-6.2

通过外部工具 (informatica) 调用 Marklogic API (HTTP PUT) 时,我们得到状态码 500。为了能够调试,我们正在寻找能够显示 URI 以及通过 PUT 发送的有效负载的日志。我们在管理控制台的“组”下的“系统日志级别”和“文件日志级别”上启用了“最佳”,但仍然只能看到 URI,但看不到 PUT 请求的输入负载。

关于启用日志以显示 PUT/POST 请求的输入有效负载的任何输入?

0 投票
1 回答
54 浏览

marklogic - 从根节点提取元素并填充每个文档

MarkLogic 版本:9.0-6.2

这是我正在使用 mlcp 将 staging db 摄取的示例 xml 文件。我的要求是将 xml 拆分为每个 Policy 的单独文档,但是在将 TransactionRequestDt 重新格式化为 YYYYMMDDHHMMSS 之后,将 uri_id 创建为 /policy/PolNum/TransactionRequestDt.xml。示例 uri 是 /policy/P123/201610171533390000000.xml

我的 mlcp 代码如下所示

我的想法是使用转换函数重新格式化 TransactionRequestDt,但意识到元素 TransactionRequestDt 不可用于转换(因为它在“策略”聚合之外)。

访问 TransactionRequestDt 并在 uri 中使用它的最佳方法是什么?我试过了

但看起来参数值作为“TransactionRequestDt”(字符串)而不是 TransactionRequestDt 的实际日期值传递。

0 投票
0 回答
70 浏览

triggers - 为什么在处理临时文档时将 2 个 uri 传递给触发器?

一旦原始输入文档到达,我们使用触发器来触发 DHF 协调流。协调流程运行良好并创建了协调实体,但是我们在日志中也有错误协调失败。

输入文档是单时态的,并使用“temporal:statement-set-document-version-uri”函数保存,因此一旦新版本到达,文档的 uri 就会保持不变。错误消息示例:“插件中的错误 (PLUGIN-ERROR): XDMP-ASerr:XPTY00041.0-mlInvalid coercionXDMP-AS: (err:XPTY0004) $value as xs:string -- Invalid coercion: () as xs :stringfalse$value…”</p>

看起来,如果输入文档是新的,则文档 uri 和文档的时间 uri 集合都被传递给触发器。文档 uri 正在运行协调流,但时间 uri 集合导致日志中的错误。当输入文档是现有时间文档的新版本时,只有文档 uri 被传递给触发器并且一切正常。我希望在任何情况下,只有 document-uri 被传递给触发器。这是一个错误,还是设计使然?

0 投票
1 回答
59 浏览

marklogic - 如何让 2 个触发器连续工作?

在 Harmonize 流创建 DHF 实体文档后,我想触发一个新的 Harmonize 流来更新相关实体的三元组。我使用触发器来启动两个 Harmonize 流程,但我无法让两者同时工作。

如果仅启用第一个触发器,则第一个 Harmonize 流运行良好。如果仅启用第二个触发器,则此流程运行良好。如果启用了两个触发器,则不会创建统一文档。

当将文档添加到名为“输入”的集合中时,会触发第一个协调流程。协调流程在集合“实体”中创建实体文档。第二个触发器将从添加到“实体”集合中的文档开始。

这两个触发器都是提交后的,因为我需要来自要保存的文档的数据。