使用自动化脚本添加更改状态验证
Phil Runion
February 16, 2024


Maximo 可以通过多种方式强制执行业务逻辑。每种方法都有一些优点,需要实施的技术技能水平也各不相同。可以通过几种不同的方式来处理需要在屏幕上显示字段。
在 Maximo 中创建必填字段的第一种方法是通过应用程序设计器将字段设置为 “必填字段”;这是在单个应用程序中将特定字段设置为 100% 必填字段的简便方法。对于在 Maximo 中仅与单个应用程序交互且始终需要该字段的用户来说,这是一个绝佳的选择。当用户想要向 “必填” 字段添加条件逻辑时,第二种方法很有用;这可以通过使用数据限制来完成。这些数据限制可以在安全组或全局级别上实施。我发现全球数据限制在大多数情况下都行之有效。这种方法比应用程序设计器的更改更为复杂,因为您必须编写 where 子句。这是我工具包中的首选解决方案,因为它们用途广泛。
这两种方法都很棒,因为它们可以在应用程序中明显地将字段显示为 “必填字段”。这些方法在应用程序中非常有效,同时仍易于实施和支持。缺点是,当工作单上的状态发生变化时,以前状态中不必填的字段在新更新的状态下可能会变为必填字段。例如,处于 WAPPR 状态的工作单正在移至 APPR 状态,而 WAPPR 状态中不必填的字段在 APPR 状态下是必填字段;当用户更改状态时,他们会收到一条一般性错误,提示字段为必填字段。另一个缺点是,条件逻辑只能与实现者编写 where 子句的技能一样好。
自动化脚本在提供带有清晰信息的复杂逻辑方面大放异彩。在记录的状态更改上添加自定义业务逻辑是自动化脚本的绝佳用例。我对资产、工作订单、服务请求、采购订单和配置项目的状态变更使用了这种方法。我发现自动化脚本允许我传送有针对性的消息,其逻辑可以根据需要而复杂。我将分享一些常见的例子。
使用基于属性的启动点将允许逻辑在每次状态变化时触发。在下面的示例中,我正在对资产变更状态进行验证。如果你想更频繁地运行验证,你可以使用对象保存启动点。

将自动化脚本与 Maximo 消息配对允许向用户提供特定而灵活的消息。对于我实现的每个自动化脚本,我都希望有一条相应的消息,其中包含一个可以向其传递消息的参数。此消息是在 “消息” 对话框的 “数据库配置” 中配置的。“{0}” 将是我们通过自定义消息传递的参数。

在自动化脚本中有消息后,就可以利用该消息调用错误。请注意,前两个参数表示要使用的消息。第三个参数是传递给消息的数组。调用时,消息中的 “{0}” 将替换数组中的第一个字符串。在消息中添加 “{1}” 将映射到数组中的第二个值。
service.error (“emx”、“assetStatusValidation”、[“地址需要变为 ACTIVE 状态。”])
如果 mbo.getString (“状态”) == “ACTIVE” 且 mbo.isNULL(“emxAddress”):
service.error (“emx”、“assetStatusValidation”、[“地址需要变为 ACTIVE 状态。”])
如果 mbo.getString (“状态”) == “正在运行”:
mbosetAssetSpec= mbo.getmboset(“$EMXASSETSPEC 必填项”、“ASSETSPEC”、“assetnum =: assetnum 和 siteid=: siteid”)
mboAssetSpec = mbosetAssetSpec.moveFirst ()
而 mboAssetSpec:
如果 mboAssetSpec.isNULL(“ALNVALUE”)和 mboAssetSpec.isNULL(“NUMVALUE”)和 mboAssetSpec.isNULL(“表值”):
service.error(“emx”、“AssetStatusValidation”、[“资产规范” + mboAssetSpec.getString (“ASSETATTRID”) + “必须不为空”])
mboAssetSpec = mbosetAssetSpec.moveNext ()
if (mbo.getString (“状态”) == “COMP”):
mbosetTask = mbo.getmboset(“$EMXWOTASK”、“WOACTIVITY”、“historyflag=0 和 istask=0 和状态!= “COMP” 和 parent=: wonum 和 siteid=: siteid”)
if(不是 mbosetTask.isEmpty ())
service.error (“emx”,” woStatusValidation”, [“此工作单有 “+mbosetTask .count () + “未完成的子工作单必须完成才能完成此工作单。”])
Discover everything you need to know to modernize your asset management strategy.
Inside, you’ll learn:

ActiveG, BPD Zenith, EAM Swiss, InterPro Solutions, Lexco, Peacock Engineering, Projetech, Sharptree, and ZNAPZ have united under one brand: Naviam.
You’ll be redirected to the most relevant page at Naviam.io in a few seconds — or you can
go now.