Maximo:在更新相关 table 时使用脚本更新工单

Maximo: Use script to update work order when a related table is updated

我在 Maximo 7.6.1.1 中有一个自动化脚本可以更新 WORKORDER table 中的自定义字段。

我想在 LatitudeYLongitudeX 字段(在 WOSERVICEADDRESS table 中)被用户编辑时执行自动化脚本。

执行此操作需要什么样的启动点?

您可以在 latitudeY 字段上创建一个属性操作启动点,在 longitudeX 字段上创建另一个。这些将在每个字段被修改时触发,因此它会在 latitudeY 字段更改时触发一次,如果 longitudeX 字段更改,则再次触发,如果 longitudeX 字段再次更改,则再次触发,依此类推。这也是保存数据之前的所有内容,因此用户可以选择取消他们的更改,但脚本仍会触发。

您还可以为 WOSERVICEADDRESS 创建一个 "on save" 对象启动点(如果这实际上是通过地图更新的)。这将 运行 任何时候保存对象中的数据,因此您必须进行额外检查以查看这些字段中的任何一个是否已更改,然后 然后 执行您的逻辑,但至少它会 运行 一次且仅当用户提交他们的更改时。

相关:

WOSERVICEADDRESS.LONGITUDEXWOSERVICEADDRESS.LATITUDEY.

中的值填充 WORKORDER.WOSAXWORKORDER.WOSAY(自定义字段)

脚本语言是 Python,而不是 Jython(我不确定这是否重要)。

woMbo=mbo.getOwner()
longitudex=mbo.getString('longitudex')
latitudey=mbo.getString('latitudey')
if woMbo is not None:
  wosax=woMbo.getString('WOSAX'); 
  wosay=woMbo.getString('WOSAY');    
  if longitudex!=wosax:
      woMbo.setValue('WOSAX',longitudex)
  if latitudey!=wosay:
      woMbo.setValue('WOSAY',latitudey)

发射点是属性发射点,而不是对象发射点。