【问题标题】:Maximo - Adding elements to a CustomMboSet using scriptingMaximo - 使用脚本向 CustomMboSet 添加元素
【发布时间】:2016-10-14 02:20:55
【问题描述】:

是否可以使用脚本添加到 Maximo 中的 CustomMboSet?我正在使用名为 TIMESHEET 的自定义对象编写自定义应用程序。作为应用程序的一部分,我正在编写一个(Jython)脚本,该脚本需要动态构建一个 MboSet(一组 TIMESHEET)。该代码检索现有的 CustomMboSet 并尝试向其中添加元素。它在使用开箱即用的 MboSet 时有效,但是当我尝试在自定义 MboSet 上运行相同的代码时,它似乎不起作用。不会抛出错误,但不运行违规行下方的代码。

换句话说,这是可行的(LABTRANS 是一个开箱即用的 MBO):

myMboSet = mbo.getMboSet("LABTRANS")
newMbo = myMboSet.add()
# Set attributes on newMbo, everything is happy

但这不是(TIMESHEET 是自定义 MBO):

myMboSet = mbo.getMboSet("TIMESHEET")
newMbo = myMboSet.add()
# Code does not execute after the above line

有人知道我为什么会看到这种行为吗? Maximo 脚本框架是否根本不支持 CustomMboSet 的动态构建?任何帮助表示赞赏。谢谢。

【问题讨论】:

    标签: scripting maximo


    【解决方案1】:

    您需要确保当前 MBO 和数据库配置中的自定义 MBO 之间存在关系,否则将无法正常工作。

    或者,您可以使用以下代码即时创建新的 mboSet:

    timeSheetMboSet = mxServer.getMboSet("TIMESHEET", userInfo)
    

    【讨论】:

    • 感谢您的回复,安德鲁,很抱歉回复晚了。我解决了这个问题。原来它与自定义对象的属性之一有关。由于自定义对象是在 org 级别创建的,因此 orgid 是必需的属性。原来,orgid 属性的搜索类型为“无”。将其更改为任何其他值(我选择通配符)允许我的脚本工作。再次感谢您的意见!
    【解决方案2】:
    mbo.getMboSet(RELATIONSHIPNAME).
    

    LABTRANSTIMESHEET 必须是自动脚本中对象的关系名称。

    如果您想在任何对象中获取/添加记录,请使用

    mxServer.getMboSet(OBJECTNAME, userInfo)
    

    【讨论】:

      【解决方案3】:

      多一点解释。您可以在自动化脚本中创建自己的自定义关系。诀窍是确保它不存在。这就是我使用美元符号的原因。

      变量 = mbo.getMboSet(tempRelationshipName,Object,where 子句)

      previousPhaseSet = mbo.getMboSet("$wophasetranstemp1", "exitdate is null")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-20
        • 2011-01-27
        • 2011-06-17
        • 2017-06-19
        • 1970-01-01
        • 2012-09-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多