在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
步骤:
从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?
答案 0 :(得分:2)
不确定您要解决什么问题。如果您只是尝试使用公式,那么我对它没有太多经验,但是据我了解,它只能返回一个数字。因此,不可能返回null。 (尽管有一个SETVALUENULL函数,可用于将其他字段设置为null,但该函数本身返回0和1。)
如果目的是将X,Y坐标值从资产/位置/服务地址返回到工单,并在没有值的情况下将其设置为null,那么我们仍如何使用标准公式并让其返回0当一切都为空时。然后,我们在ERI属性的“ validate”事件上创建一个单独的属性启动点脚本,检查值是否为0,然后使用以下代码将其覆盖为空:
if mbo.getDouble("eri") == 0:
mbo.setValueNull("eri")
答案 1 :(得分: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?