You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DHF5 Flows源查询中添加当前日期作为动态集合

在DHF5 Flows源查询中添加当前日期作为集合的实现方法

方法1:SPARQL源查询直接生成当前日期集合

如果你的源是SPARQL端点或MarkLogic SPARQL查询,可直接在查询逻辑中绑定当前日期变量:

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?item ?currentDate
WHERE {
  # 原有业务查询逻辑
  ?item a :YourTargetEntity .
  # 绑定当前日期(带时间)
  BIND(NOW() AS ?currentDate)
  # 若仅需纯日期格式,替换为:
  # BIND(STRDT(STR(NOW()), xsd:date) AS ?currentDate)
}

查询结果会自动包含currentDate字段,后续Flow步骤可直接引用该字段作为集合属性。

方法2:JavaScript源查询脚本中添加

如果源是基于JavaScript的文档查询(比如从MarkLogic集合中提取文档),可在查询脚本中直接注入当前日期:

function getSourceDocuments() {
  // 原有文档查询逻辑
  const sourceDocs = cts.search(cts.collectionQuery("your-source-collection"));
  
  // 遍历文档,添加当前日期字段
  return Array.from(sourceDocs).map(doc => {
    const docContent = fn.head(doc.root);
    // 添加纯日期字段(不带时间)
    docContent.currentDate = fn.currentDate();
    // 若需带时间戳,替换为:
    // docContent.currentDateTime = fn.currentDateTime();
    return docContent;
  });
}

方法3:Flow转换步骤中追加当前日期

如果源查询不便修改,可在Flow的转换阶段添加自定义逻辑:

  1. 打开DHF5 Flow配置界面,找到「转换步骤」
  2. 添加自定义JavaScript转换,代码如下:
function transform(inputDoc) {
  // 给输入文档追加当前日期字段
  inputDoc.currentDate = fn.currentDate();
  // 如需指定日期格式,使用格式化函数:
  // inputDoc.formattedDate = fn.formatDateTime(fn.currentDateTime(), "[Y0001]-[M01]-[D01]");
  return inputDoc;
}

注意事项

  • 时区处理:MarkLogic日期函数默认使用服务器时区,如需指定时区,可传入时区参数,例如fn.currentTime(xs.dateTime("2024-01-01T00:00:00-05:00").timezone)
  • 格式自定义:通过fn.formatDateTime函数可生成任意格式的日期字符串,参数参考MarkLogic官方日期格式化规则

内容的提问来源于stack exchange,提问作者ramz123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 04:36:17