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

Maximo环境下使用WOTotalSet填充WORKORDER对象成本字段方案咨询

结论

可以实现该需求,优先选择自动化脚本方案,属性公式无法满足调用WOTotalSet逻辑的要求。


自动化脚本实现方案

  • 触发时机配置:可选择WORKORDER对象的初始化(Initialize)事件、工单关联成本类记录(劳动、材料、服务、工具等)的保存后事件,如需覆盖历史工单数据可额外配置定时执行任务。
  • 核心逻辑说明:WOTotalSet的底层查询逻辑本身支持接收工单WORKORDERID作为参数返回对应工单的全量成本数据,无需WOTOTAL对象显式定义WORKORDERID/WONUM字段,也不需要额外配置WORKORDER到WOTOTAL的显式关系。
  • 脚本示例(以Jython为例):
from psdi.app.workorder.virtual import WOTotalSet
from psdi.mbo import MboConstants

# 从当前脚本上下文获取目标工单Mbo,不同触发事件下获取方式可根据实际调整
woMbo = mbo

# 实例化WOTOTAL对象集
woTotalSet = MXServer.getMXServer().getMboSet("WOTOTAL", woMbo.getUserInfo())
# 传入当前工单的WORKORDERID作为查询参数
woTotalSet.setQbe("WORKORDERID", str(woMbo.getInt("WORKORDERID")))
woTotalSet.reset()

if not woTotalSet.isEmpty():
    woTotalMbo = woTotalSet.getMbo(0)
    # 将成本值写入WORKORDER对象的自定义字段,示例中自定义字段为PLUSCTOTALCOST
    woMbo.setValue("PLUSCTOTALCOST", woTotalMbo.getDouble("TOTAL"), MboConstants.NOACCESSCHECK)

# 释放资源
woTotalSet.close()

属性公式方案说明

属性公式仅支持预设公式函数调用、简单属性运算,无法直接实例化MboSet或调用Java类逻辑,无法直接获取WOTOTAL的计算结果,不满足该需求的实现要求。


注意事项

  • 若使用持久字段存储成本值,需配置对应字段的编辑权限,避免业务规则拦截赋值操作;若使用非持久字段,只需在工单加载时触发脚本赋值即可。
  • 测试阶段需验证父工单、任务工单的成本汇总结果,确认和WOTRACK模块「查看成本」页面的展示数值完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:48:04