【问题标题】:Maximo automatisation script to change statut of workorder用于更改工作订单状态的 Maximo 自动化脚本
【发布时间】:2018-08-02 14:27:31
【问题描述】:

我在我的 WoActivity 表中创建了一个名为 VDS_COMPLETE 的非持久属性。这是一个布尔值,可以通过我的一个应用程序中的复选框进行更改。

我正在尝试在 Python 中制作一个自动化脚本,以更改每个任务的状态,即在我保存 WorkOrder 时已检查过的工作订单。

我不知道为什么它不起作用,但我很确定我已经接近答案了...... 你知道为什么它不工作吗?我知道我在 cmets 中有代码,我做了一些实验......

from psdi.mbo import MboConstants
from psdi.server import MXServer

mxServer = MXServer.getMXServer()
userInfo = mxServer.getUserInfo(user)

mboSet = mxServer.getMboSet("WORKORDER")
#where1 = "wonum = :wonum"
#mboSet .setWhere(where1)

#mboSet.reset()

workorderSet = mboSet.getMbo(0).getMboSet("WOACTIVITY", "STATUS NOT IN ('FERME' , 'ANNULE' , 'COMPLETE' , 'ATTDOC')")
#where2 = "STATUS NOT IN ('FERME' , 'ANNULE' , 'COMPLETE' , 'ATTDOC')"
#workorderSet.setWhere(where2)


if workorderSet.count() > 0:
    for x in range(0,workorderSet.count()):
        if workorderSet.getString("VDS_COMPLETE") == 1:
            workorder = workorderSet.getMbo(x)
            workorder.changeStatus("COMPLETE",MXServer.getMXServer().getDate(), u"Script d'automatisation", MboConstants.NOACCESSCHECK)

workorderSet.save()
workorderSet.close()

【问题讨论】:

    标签: maximo


    【解决方案1】:

    看起来您的两个最大错误是 1. 试图让您的布尔字段 (VDS_COMPLETE) 脱离集合(意味着脱离记录集合,如整个表)而不是脱离 MBO(意味着实际记录,表中的一个条目)和 2. 从数据库中获取新的数据集(通过 MXServer 调用),这意味着使用以前保存的数据,而不是从实际进行待处理更改的屏幕中获取数据集(请记住,非持久性字段不会保存到数据库中)。

    此脚本还有一些其他问题,例如您在 for 循环中使用“count()”(甚至不止一次),这是一项昂贵的操作,以及您当前的方式(尽管这可能是您调试的结果)在获取第一个工单之前没有过滤工单集(意味着您从表中获得一个随机工单),然后从该记录中建立动态关系(而不是使用正常关系或完全跳过关系并仅使用“where”子句),即使该关系可能已经存在。

    这里是 Stack Overflow,详细描述了 Maximo 中的关系和“where”子句:Describe relationship in maximo 7.5

    这个问题还有一些更多关于从屏幕获取数据而不是从数据库获取数据的信息:Adding a new row to another table using java in Maximo

    【讨论】:

    • 我不确定我是否理解您第二个链接上的答案。 MboRemote 是从活动屏幕获取信息的对象吗?
    • MboRemote 是您用来与一行数据周期交互的 对象。不管它来自哪里。这就是 Maximo 编码 101。获取 MboRemote 的方式决定了它是来自数据库还是来自内存缓存(这通常意味着屏幕上的内容而不是数据库中的内容)的新查询。另外,您应该意识到自动化脚本以对 MboRemote 的引用开始,特定的 MboRemote 正在执行您将自动化脚本挂钩的任何操作(保存、初始化等),因此通常是您想要执行的对象已经开始工作了。
    猜你喜欢
    • 2020-05-22
    • 2020-01-22
    • 2018-08-18
    • 2021-11-26
    • 2020-10-20
    • 2015-06-10
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多