在WORKORDER中填充自定义X和Y字段

问题描述 投票:0回答:1

在Maximo 7.6.1.1中:

我在这些表中有自定义字段:

  • WORKORDER:XY(空)
  • 资产:XY(已填充)
  • 位置:XY(已填充)

我想使用以下逻辑填充X中的YWORKORDER字段:

(逻辑与auto-create spatial search logic中的逻辑相似,但略有不同。]

Scenario: A user is making edits to work orders.

1. If the related WOSERVICEADDRESS table gets edited:
   then update WORKORDER.X & WORKORDER.Y with WOSERVICEADDRESS.LONGITUDEX and WOSERVICEADDRESS.LATITUDEY

2. In the WORKORDER table, if WORKORDER.ASSETNUM gets edited and WOSERVICEADDRESS.LATITUDEY is null:
   then update WORKORDER.X & WORKORDER.Y with the related values in ASSET.X and ASSET.Y.

3. In the WORKORDER table, if the WORKORDER.LOCATION gets edited and WOSERVICEADDRESS.LATITUDEY is null 
      and WORKORDER.ASSETNUM is null:
   then update WORKORDER.X & WORKORDER.Y with the related values in LOCATIONS.X and LOCATIONS.Y.

关于#2和#3的注释:出于性能原因,仅在实际编辑ASSETNUM字段或LOCATION字段时才运行脚本,这一点很重要。

  • 我不希望每次修改WORKORDER时都运行脚本。
  • 例如,如果WORKORDER.DESCRIPTION被编辑,我不希望脚本运行(当然要检查ASSETNUMLOCATION字段是否被编辑。

Jython Automation脚本中有没有办法做到这一点?

coordinates jython maximo
1个回答
0
投票
x = "" y = "" if assetnum_modified or location_modified: if location: x = mbo.getString("ASSET.LONGITUDEX") y = mbo.getString("ASSET.LATITUDEY") elif assetnum: x = mbo.getString("ASSET.LONGITUDEX") y = mbo.getString("ASSET.LATITUDEY") woaddr = mbo.getMboSet("SERVICEADDRESS").getMbo(0) if woaddr.getString("LONGITUDEX"): x = woaddr.getString("LONGITUDEX") y = woaddr.getString("LATITUDEY") mbo.setValue("LONGITUDEX", x) mbo.setValue("LATITUDEY", y)

对于WO服务地址,因为它是另一个表,所以有点棘手。如果性能是您系统上的一个大问题,那么解决方案可能是在WOSERVICEADDRESS对象上创建一个单独的脚本,并根据您的规则具有处理“添加/更新”和“删除”事件的逻辑]

© www.soinside.com 2019 - 2024. All rights reserved.