如何以编程方式访问 Maximo 列表 where 子句

How to access the Maximo list where clause programmatically

在 Maximo 的 WOTRACK 应用程序中,我需要找到一些方法来以编程方式访问当前 window 查询的 where 子句。很明显,它存在于 Maximo 的某处,因为您可以在高级搜索 > Where 子句下的 UI 中访问它。我需要找到一些方法以编程方式获取此信息并将其传递到我正在使用的应用程序。

过去,我想出了一种获取此数据的方法,方法是让用户在 Maximo 中打开 where 子句 window,然后只检索包含 where 子句的 textarea 元素的值。我希望找到某种方式通过 Maximo 的 Java class 访问它,这样用户就不必打开那个 window。我仔细研究了 Maximo 的 Java 文档,发现有一个 WhereClauseTextArea class,我认为它负责创建文本区域。我希望能够将 UI 会话 ID 传递给 Maximo 的 Java classes 并取回列表的当前 where 子句。有没有简单的方法可以做到这一点?我希望能够使用 JavaScript 从前端访问它,或者 Java 从 Maximo 的后端访问它,或者作为最后的手段使用自动化脚本。

Maximo 有许多不同的 where 子句来源(应用程序限制、对象限制、关系、QBE(按示例查询)过滤器、站点限制等)。使用自动化脚本(Python 或 JavaScript),您应该能够从 mbo.getThisMboSet().getUserWhere().getUserAndQbeWhere().getWhere() 中找到您要查找的内容。正如评论者指出的那样,.getCompleteWhere() 也可能有帮助。

您可以找到那些 psdi.mbo.MboSet 方法的 JavaDocs,或找到其他 "where clause getting" 方法,here

在Maximo 7.6.1.1/Jython中,我们可以使用getWebClientSession()方法:

wclause = service.webclientsession().getCurrentApp().getResultsBean().getMboSet().getUserAndQbeWhere() 

service.error("The WHERE clause is : ", wclause);