MarkLogic:协调流程以跳过作者

问题描述 投票:0回答:1

MarkLogic版本:9.0-6.2

我们有一个协调流程,我们在content.sjs中准备'source'变量,传递给writer.sjs。我有一个场景,我应该跳过编写器(例如,如果文档已经在最终数据库中的exixts和staging doc的时间戳小于最终文档中的时间戳,那么我不想写入final)

这是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);
}

在协调流程期间,当我们不想从分段编写文档时,跳过编写器的最佳方法是什么。

marklogic marklogic-9 marklogic-dhf
1个回答
1
投票

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

另一种方法是将逻辑放在协调流程的主要部分。

HTH!

© www.soinside.com 2019 - 2024. All rights reserved.