【问题标题】:15 Day rule in Mulesoft dataweaveMulesoft dataweave 中的 15 天规则
【发布时间】:2020-06-19 23:04:54
【问题描述】:

需要有关 Dataweave 代码的帮助。我们希望 Hierarchy 版本基于 15 天规则。例如,(基于当前日期)从 4 月 16 日到 5 月 15 日,文件将在文件名中带有 MAY 发送。从5月16日到6月15日,文件将在文件名中带有JUN。

【问题讨论】:

  • 问题不清楚。请澄清并提供预期输出的示例。
  • 我需要我在上一篇文章中发布的 Dataweave 代码......如果当前日期(意味着您可以考虑今天的日期 19 日)在当月的第 16 天到第 31 天和下个月的第 1 天到下个月第 15 天,我的文件名应该是“JUL”,例如“Hierachy_JUL-2020_2020_06_19_16_41.txt”
  • 您应该编辑您的问题以包含该信息。

标签: mule mule-studio dataweave mulesoft mule-esb


【解决方案1】:

问题不清楚,但我的理解是,给定一个日期,你想返回一个三个字符的月份名称,如果月份的日期是 15,那么当前的月份应该是下个月而不是当前的月份。

我创建了一个 DataWeave 函数来返回它:

%dw 2.0
output application/json
fun month15(date : DateTime)=upper((if (date.day >15) (date + |P1M|) else date) as String {format:"MMM"}) ++  date as String {format:"-yyyy_yyyy_MM_dd_HH_mm"}
---
{
    now: month15(now()),
    june15: month15(|2020-06-15T18:03:01Z|),    
    june19: month15(|2020-06-19T10:15:54Z|)    
}

输出:

{
  "now": "JUL-2020_2020_06_21_14_24",
  "june15": "JUN-2020_2020_06_15_18_03",
  "june19": "JUL-2020_2020_06_19_10_15"
}

更新了 cmets 中需要 DateTime 参数的新模式。

【讨论】:

  • 如果月份的日期是 15 到 31 并且下个月的 1 到 15 也应该返回下一个 3 个字符的月份......今天是 6 月 19 日,然后是下个月 3字符月份名称应返回为 JUL.... 7 月 1 日至 15 日也应返回 3 个字符为 JUL
  • 您能否提供格式为 {format:"MMM-yyyy_yyyy_MM_dd_HH_mm"} 而不是 {format:"MMM"} 的代码?我试过了,但没有为我工作。
  • 日期处理似乎完全符合您的要求。让我知道是否有我遗漏的案例。你没有提到需要时间模式。我的脚本假定了一个没有时间的日期。当您使用时间模式时,它无法找到时间。错误消息提到了它。我修改了我的脚本以假设一个日期并将结果转换为大写..
  • 输出:{“现在”:“JUL-2020_2020_07_20_12_56”,}
  • 对不起,我不明白你的最后评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-22
相关资源
最近更新 更多