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

如何用DXL将VVT Status属性的最后修改日期填充到VVT Status Update属性

修正方案:提取VVT Status属性的最新修改日期写入目标属性

原代码存在的问题

  • 变量名拼写错误:attributName 和 attributeName 不一致,导致属性匹配逻辑可能失效
  • 内层循环错误遍历了对象的所有历史记录,而非仅“VVT Status”的历史,最终写入了所有更新记录
  • 外层遍历对象所有历史的逻辑冗余,会重复处理同一对象

修正后的代码

Module m = current

// 获取历史记录的日期(可根据需求调整格式)
string getLatestHistoryDate(History h) {
    return h.date
}

string targetAttrName = "VVT Status Update"
string sourceAttrName = "VVT Status"

Object o
for o in entire m do {
    // 跳过已删除的对象
    if isDeleted(o) then continue
    // 检查是否有权限修改目标属性
    if (!canModify o.targetAttrName) {
        warn "无法修改对象 " (identifier o) " 的目标属性\n"
        continue
    }

    // 收集当前对象中属于VVT Status的所有历史记录
    History targetHistory
    Date latestDate = null
    for targetHistory in o do {
        if targetHistory.attrName == sourceAttrName {
            // 比较日期,保留最新的那条
            if (latestDate == null || targetHistory.date > latestDate) {
                latestDate = targetHistory.date
            }
        }
    }

    // 如果找到有效历史记录,写入目标属性
    if (latestDate != null) {
        o.targetAttrName = latestDate
    } else {
        // 可选:如果没有历史记录,清空目标属性或给出提示
        o.targetAttrName = ""
        // warn "对象 " (identifier o) " 没有VVT Status属性的历史记录\n"
    }
}

save m

关键逻辑说明

  1. 遍历模块内每个对象,先过滤已删除对象和无修改权限的情况
  2. 针对每个对象,仅筛选出属于“VVT Status”的历史记录
  3. 通过日期比较,找出其中最新的修改日期
  4. 将最新日期写入“VVT Status Update”属性,若没有历史记录则清空目标属性(可根据需求调整)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 21:13:15