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

Maximo工单带附件时自动勾选复选框的实现方式咨询

Maximo工单附件状态复选框实现方案

一、条件表达式实现(仅适用于初始状态)

条件表达式可以实现工单加载时自动判断并勾选复选框,但存在明显局限性:

  • 操作步骤:
    1. 在WORKORDER对象中新增布尔型字段(例如命名为HASATTACHMENTS)。
    2. 给该字段设置默认值表达式:
      exists (select 1 from doclinks where doclinks.ownerid=:wonum and doclinks.ownertable='WORKORDER')
      
  • 局限性:该表达式仅在工单首次加载时计算一次,若工单打开后新增/删除附件,复选框不会自动更新,必须刷新页面才会同步状态,适合对实时性要求不高的场景。

二、自动化脚本实现(实时同步状态)

如果需要附件增删时实时更新复选框状态,必须通过自动化脚本实现,步骤如下:

  1. 准备字段:在WORKORDER对象新增布尔型字段HASATTACHMENTS,设置为只读属性,防止手动修改。
  2. 创建附件事件脚本:
    • 触发对象选择DOCLINKS,触发事件选择Add和Delete(分别对应附件新增、删除操作)。
    • 脚本示例(Jython):
      from psdi.mbo import MboConstants
      
      # 获取当前操作的附件记录
      doclinks_mbo = mbo
      owner_table = doclinks_mbo.getString("OWNERTABLE")
      owner_id = doclinks_mbo.getString("OWNERID")
      
      # 仅处理工单相关附件
      if owner_table == "WORKORDER":
          # 加载对应工单MBO
          wo_set = mbo.getMboSet("WORKORDER")
          wo_set.setWhere(f"WONUM = '{owner_id}'")
          wo_mbo = wo_set.moveFirst()
          if wo_mbo:
              # 统计工单剩余附件数量
              doclinks_set = wo_mbo.getMboSet("DOCLINKS")
              has_attachments = doclinks_set.count() > 0
              # 更新复选框字段
              wo_mbo.setValue("HASATTACHMENTS", has_attachments, MboConstants.NOACCESSCHECK)
              wo_mbo.save()
      
  3. 创建工单加载脚本:
    • 触发对象选择WORKORDER,触发事件选择Load(工单打开时触发)。
    • 脚本示例(Jython):
      from psdi.mbo import MboConstants
      
      wo_mbo = mbo
      # 统计当前工单附件数量
      doclinks_set = wo_mbo.getMboSet("DOCLINKS")
      has_attachments = doclinks_set.count() > 0
      # 初始化复选框状态
      wo_mbo.setValue("HASATTACHMENTS", has_attachments, MboConstants.NOACCESSCHECK)
      
  • 优势:能实时响应附件的增删操作,无需刷新页面,复选框状态始终与附件实际情况同步。

总结

  • 若仅需工单加载时显示附件状态,使用条件表达式即可快速实现;
  • 若需要实时同步附件变化的状态,必须通过自动化脚本完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:50:28