3 回答
TA贡献1794条经验 获得超7个赞
它不受支持,但您可以在 autoscript 应用程序中创建并授予自己 EXECUTE sig 选项。这将启用执行操作,允许您按需执行脚本。但是,由于没有使用启动点来提供上下文,因此您可能习惯使用的隐式变量和其他上下文将不可用。
“按需自动脚本”是我所谓的脚本,我开发的目的是从该执行操作中执行。我已经编写了 On Demand 脚本来执行诸如重新同步嵌套工作流或准备我们的数据以进行升级之类的事情。On Demand 脚本虽然创建方式相同,但与 7.6 文档所称的“库脚本”的不同之处在于,即使库脚本不是(必须)从它们自己的启动点调用,调用它们的脚本通常也提供一些上下文/隐式变量。
On Demand Autoscript 通常看起来像这样,您可以在 Maximo API JavaDocs 中查找文档。
from psdi.server import MXServer
server = MXServer.getMXServer()
security = server.lookup("SECURITY")
userInfo = security.getSystemUserInfo()
mboSet = server.getMboSet("SOMEOBJECT", userInfo)
try:
mboSet.setWhere("somecol = 'somevalue'")
mbo = mboSet.moveFirst()
while mbo:
print "do something with mbo %s: %s" % (
mbo.getUniqueIdentifer(), mbo.getString("DESCRIPTION"))
mbo = mboSet.moveNext()
if "applicable":
mboSet.save()
finally:
if not mboSet.isClosed():
mboSet.close()
综上所述,您应该可以轻松地“编写一个循环遍历表中的记录并根据特定条件更新值的脚本。我可以按需执行它。”
TA贡献1155条经验 获得超0个赞
您可以使用以下代码从任何 Java 类(在 maximo 中)执行脚本——即使没有启动点:
ScriptDriverFactory.getInstance().getScriptDriver(ScriptName).runScript(ScriptName, Context);
...whereContext
是脚本中可能需要的所有变量的哈希图。
添加回答
举报