【问题标题】:Maximo formula that uses a custom formula function/automation script?使用自定义公式函数/自动化脚本的 Maximo 公式?
【发布时间】:2020-01-24 00:27:16
【问题描述】:

在 Maximo 7.6.1.1 中:

我想创建一个使用自定义公式函数/自动化脚本的属性公式。


我已尝试按照以下步骤进行操作,但不幸的是,当我尝试在 WO Tracking 中使用它时出现错误:

BMXAA3761E - The event has failed. Ensure that the event is registered correctly.
See the log file in the APP HOME directory for more details about the error.
null

步骤:

  1. 创建自动化脚本:

  2. 添加/修改公式功能:

  3. 添加/修改属性公式:

  4. 创建一个 WO。保存它以便调用属性公式。

  5. 错误:

来自 SystemOut 日志:

Caused by: 
java.lang.NullPointerException
    at com.ibm.tivoli.maximo.expression.FormulaMboEventListener.preSaveEventAction(FormulaMboEventListener.java:213)
    at psdi.server.event.EventTopic$Subscription.preSaveEventAction(EventTopic.java:731)
    at psdi.server.event.EventTopic.preSaveEventAction(EventTopic.java:342)

有人知道我为什么会收到这个错误吗?

这里有相关问题:Can Maximo formulas return null?

【问题讨论】:

    标签: formula maximo


    【解决方案1】:

    不确定您要解决什么问题。如果你只是想玩公式,我没有太多经验,但据我了解,它只能返回一个数字。所以返回 null 是不可能的。 (虽然有一个 SETVALUENULL 函数可以用来将不同的字段设置为 null,但该函数本身返回 0 和 1)。

    如果目的是从Asset/Location/Service Address返回Work Order的X,Y坐标值,没有值的时候设置为null,我们还是使用标准公式,让它返回一个0怎么样当一切都为空。然后,我们在 ERI 属性的“验证”事件上创建一个单独的属性启动点脚本,检查值是否为 0,然后我们将使用以下代码将其覆盖为 null:

        if mbo.getDouble("eri") == 0:
          mbo.setValueNull("eri")
    

    【讨论】:

    • 这可能是一个很好的解决方法,但我会避免修改 validate 事件中的数据。我会改用action 事件。
    • @JPTremblay 您知道让自动化脚本在公式后触发的安全方法吗?
    • 我不知道。我需要详细查看公式框架。你为什么想这么做?公式是专门的功能,是 [attribute] 自动化脚本可以完成的功能的一个子集。基本上,如果你不计算数字,你应该切换到自动脚本。
    • 在这种情况下,我们可以有一个自动脚本,在 Work Order 对象的 Save 事件上用 null 覆盖 0 值。它将确保在公式之后覆盖该值。它对你有用吗?
    【解决方案2】:

    据我所知,这个 preSaveEventAction 方法不期望 null 值并自愿崩溃。查看 Javadoc 中的 com.ibm.tivoli.maximo.expression.Expression.eval() 方法。它返回一个 BigDecimal,一个公式应该返回一个数字的线索。

    https://developer.ibm.com/static/site-id/155/maximodev/7609/maximocore/businessobjects/

    所以您收到此错误的原因似乎是因为您的脚本返回了无效值,与此处相同:Can Maximo formulas return null?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-29
      • 1970-01-01
      相关资源
      最近更新 更多