我得到TypeError:getMboSet():预期的2-4个参数;在中使用MAXIMO Automation脚本

问题描述 投票:0回答:1

我正在开发自动化脚本,但遇到下一个错误:

BMXAA7837E-发生错误,阻止了BAX_ISSUEGL启动点的BAX_ISSUEGL脚本运行。TypeError:getMboSet():预期2-4个参数;在第5行获得1英寸更多信息

我正在使用jython 2.5.2,MAXIMO 7.6.0.9。自动化是对象启动点自动化。

有人知道我为什么要出错?

自动化脚本:

from psdi.mbo import Mbo
from psdi.mbo import MboConstants

#Get object
issueCI = Mbo.getMboSet("ISSUECURRENTITEM")

#Get Storeloc and Accounts
storeloc=issueCI.getString("STORELOC");
debitacct=issueCI.getString("GLDEBITACCT");

if debitacct[0:4] != storeloc:
 errorgroup= "Credit Error";
 errorkey= "CreditError";
automation jython maximo
1个回答
0
投票

第5行的问题是您将Mbo大写了-表示您引用的是导入的类psdi.mbo.Mbo。但是启动点会将名为mbo的隐式变量传递给脚本,并且mbo将是Mbo(的子类)的实例。

Python方法是类中的函数,并且它们将self作为第一个参数。因此,在mbo.getMboSet("RELATIONSHIPNAME")中,Python将在内部转换该getMboSet(mbo, "RELATIONSHIPNAME")。通过引用该类而不是该类的实例,您实际上忽略了self参数。这就是为什么当getMboSet()的JavaDoc显示带有1、2或3个参数的方法的重载时,告诉您Mbo.getMboSet()期望“ 2-4个参数”的原因。

FYI:对于您粘贴的代码,在第5行上将Mbo更改为mbo时,就不需要任何from ... import行。仅当您直接引用类时才需要这些,例如第5行做错了。

© www.soinside.com 2019 - 2024. All rights reserved.