MarkLogic:协调流程以跳过编写器

时间:2019-03-01 03:05:08

标签: marklogic marklogic-9 marklogic-dhf

MarkLogic版本:9.0-6.2

我们有一个统一的流程,我们正在准备content.sjs中的“ source”变量,以将其传递给writer.sjs。我有一种情况,我应该跳过编写器(例如,如果文档已经存在于最终数据库中,并且暂存文档的时间戳小于最终文档中的时间戳,那么我不想写入最终文档)

这是content.sjs中的代码段

let source;
//logic to populate source
options.headers = source.envelope.headers;
return extractInstanceCustomer(source.envelope.instance);

我们注意到有时在源为空时这会跳过编写器。在某些情况下,写者是用空源调用的,因此信封是用标头创建的,但实例是空的。

我们尝试了以下逻辑,但仍未看到一致的行为。

let source;
//logic to populate source

if (fn.empty(source)) {
}
else {
  options.headers = source.envelope.headers;
  return extractInstanceCustomer(source.envelope.instance);
}

在协调流程中,当我们不想从暂存阶段写文档时,跳过作家的最佳方法是什么。

1 个答案:

答案 0 :(得分:1)

我认为放置此逻辑的最佳位置实际上是在作者中。在那里,您拥有所有数据(标题,三元组,实例和附件),并且如果您也想对此进行运行检查,则可以直接访问Final数据库中的数据。

替代方法是将逻辑放在协调流程的主要部分。

HTH!