首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maximo自动化脚本以更改工作顺序的状态

Maximo自动化脚本以更改工作顺序的状态
EN

Stack Overflow用户
提问于 2018-08-02 14:27:31
回答 1查看 3.4K关注 0票数 0

我在WoActivity表中创建了一个名为VDS_COMPLETE的非持久性属性。这是一个bool,它被我的应用程序中的一个复选框所更改。

我试图在Python中创建一个自动化脚本,以更改每个任务的状态,这是在保存WorkOrder时检查的工作顺序。

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

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-03 01:14:07

这里看起来最大的两个错误是: 1.试图将布尔字段(VDS_COMPLETE)从集合中删除(意思是离开记录集合,比如整个表),而不是离开MBO (指实际记录,表中的一个条目);2.从数据库中(通过MXServer调用)获取数据集,这意味着使用先前保存的数据,而不是从实际进行挂起的更改的屏幕上获取数据集(并记住,非持久性字段不会保存到数据库中)。

这个脚本还有其他一些问题,比如在for循环中使用"count()“(甚至不止一次)--这是一项昂贵的操作,以及您当前的方式(尽管这可能是调试的结果)--在获取第一个工作顺序之前没有过滤工作顺序集(这意味着您从表中得到一个随机的工作顺序),然后在记录之外执行一个动态关系(而不是使用一个正常的关系或者跳过关系,只使用一个"where”子句),尽管这种关系很可能已经存在。

下面是一个堆栈溢出,详细描述了Maximo:Describe relationship in maximo 7.5中的关系和"where“子句

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51656089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档