如果任何任务未完成,则不允许将工单状态更改为完成

Disallow changing Work Order status to Complete, if any of the tasks are not complete

我在 Maximo 中有一个包含任务的工单。

我想配置 Maximo,以便在任何任务未完成时无法更改工单以完成。

原因:我想这样做是为了确保在工单更改完成时不小心错过了none个任务。

我该怎么做?

我的顾问建议这只能通过 Java 定制 Maximo 来完成。我想验证一下这是否是唯一的选择。

版本:7.6.1.1

从屏幕截图来看,您似乎使用的是 Maximo 7.6.1。所以,Java当然不是唯一的选择。

在没有任何 "coding" 的情况下执行此操作的方法之一(条件表达式除外,这不算在内)是在 WOSTATUS 同义词域中的 Complete 同义词上放置一个条件表达式。此解决方案将阻止 Complete 的同义词出现在您可以选择的状态列表中,除非条件评估为真。

如果您想使用自动化脚本,您可以从对象启动点或属性启动点调用一个脚本,并让它在出现类似屏幕截图的情况时抛出错误。

除上述方法外,您可以选择让任务自动从父级继承状态更改,在这种情况下,屏幕截图中的任务将更改为 COMP,而它们所在的 WO 更改为 COMP。您可以将 "Inherit status changes" 默认配置为 true 并配置用户是否可以覆盖该默认值。

https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM+Maximo+Asset+Management/page/Restricting+closure+of+parent+work+orders

Restricting closure of parent work orders when child or task work orders are in process You can restrict users from closing a parent work order if any child or task work order is not closed, completed, or canceled. You create a conditional expression and apply it to the WOSTATUS domain closed, canceled, and complete values.

如果必须完成所有任务并且您不关心 parent/child 工单,那么您可以改用以下条件:

not exists (select 1 from workorder where parent = :wonum and istask=0 and status not in ('COMP','CLOSE','CAN'))

警告词。正确测试。如果您要求完成所有任务,这可能会影响升级,并且技术人员可能不喜欢在例行工作计划中检查所有任务是否已完成。