问题标签 [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.
json - 未找到数据中心协调架构
使用 MarkLogic DHF,我试图从我的协调流程中调用一个 json 验证函数。除了验证功能没有找到架构外,其他流程都运行良好。协调文件最终所在的 *-FINAL DB 关联了我的 *-SCHEMAS db,并且我的模式文件存储在该 *-SCHEMAS db 中的简单 URI 下。如何确定 DHF 协调流程在哪里寻找架构?
更新:通过反复试验,我确定在将我的 json 模式加载到我的服务器的基本“模式”数据库后,协调流程能够为 jsonValidate() 函数找到它。但我不明白为什么它在最终模式数据库中找不到它,这是构建加载模式的地方。
更新 2.0:使用@grtjn 下面的建议,我确定协调流的当前数据库不是最终数据库,而是暂存数据库。因此,当我在暂存模式数据库中手动加载模式时(具有适当的权限),流程会找到它。所以现在我只需要弄清楚如何让 gradle deploy 将架构放入暂存架构数据库而不是最终架构数据库。
marklogic - MarkLogic - JSON 到 XML 的转换 - 处理多个属性
我有一个文件如下。
我的要求是在转换为 XML 时将 id(在 PolicyInfo 下)和 idref(在 NameInfo 下)转换为属性。我可以使用下面的代码来处理一个属性。
我尝试了以下选项,但它们都不起作用。
有没有办法在转换为 XML 时处理多个属性?
提前致谢!
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错误的原因有任何想法吗?
logging - 设置 MarkLogic 日志文件的最大大小
在我们的开发环境中,我们有一些日志文件会在特定日期超过 1GB。我们能否设置一个大小限制,例如 250MB,以便在达到大小限制时日志文件将继续在新创建的日志文件中记录。这将在我们的案例中为特定日期生成 4 个日志文件,而不是 1 个巨大的日志文件。
warnings - 记录 MarkLogic 中显示的警告:清除过期的 DatabaseQueryPath MarkLogic
通过谷歌搜索互联网后,我们找不到任何正确答案。这是我们的情况...
我们在显示此(警告)信息的 Windows 事件日志中遇到一些警告:
清除过期DatabaseQueryPath 5845128627522525605,database=Security,timeLimit=598,expired=2019-01-18T12:41:00,started=2019-01-18T12:31:02
谁能解释这个警告信息的含义?
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
我在这里想念什么?
marklogic - MarkLogic:HTTP 调用的详细日志
MarkLogic 版本:9.0-6.2
通过外部工具 (informatica) 调用 Marklogic API (HTTP PUT) 时,我们得到状态码 500。为了能够调试,我们正在寻找能够显示 URI 以及通过 PUT 发送的有效负载的日志。我们在管理控制台的“组”下的“系统日志级别”和“文件日志级别”上启用了“最佳”,但仍然只能看到 URI,但看不到 PUT 请求的输入负载。
关于启用日志以显示 PUT/POST 请求的输入有效负载的任何输入?
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 的实际日期值传递。
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 被传递给触发器。这是一个错误,还是设计使然?
marklogic - 如何让 2 个触发器连续工作?
在 Harmonize 流创建 DHF 实体文档后,我想触发一个新的 Harmonize 流来更新相关实体的三元组。我使用触发器来启动两个 Harmonize 流程,但我无法让两者同时工作。
如果仅启用第一个触发器,则第一个 Harmonize 流运行良好。如果仅启用第二个触发器,则此流程运行良好。如果启用了两个触发器,则不会创建统一文档。
当将文档添加到名为“输入”的集合中时,会触发第一个协调流程。协调流程在集合“实体”中创建实体文档。第二个触发器将从添加到“实体”集合中的文档开始。
这两个触发器都是提交后的,因为我需要来自要保存的文档的数据。