在Maximo的WOTRACK应用程序中,我需要找到某种方式以编程方式访问当前窗口查询的where子句。很明显,这存在于Maximo中,因为您可以在UI的“高级搜索”>“ Where子句”下访问它。我需要找到某种方式以编程方式获取此信息,并将其传递给正在使用的应用程序。
过去,我通过让用户在Maximo中打开where子句窗口,然后仅检索包含where子句的textarea元素的值,来掌握一种获取这些数据的方法。我希望找到通过Maximo的Java类访问它的方法,因此用户不必打开该窗口。我已经浏览了Maximo的Javadocs,并且看到有一个WhereClauseTextArea类,我相信它将负责创建文本区域。我希望能够将UI会话ID传递给Maximo的Java类,并获取列表的当前where子句。有一个简单的方法吗?我希望能够使用JavaScript从Maximo的前端进行访问,或者通过Java从Maximo的后端进行访问,或者使用自动化脚本作为最后的选择。
答案 0 :(得分:3)
在Maximo 7.6.1.1 / Jython中,我们可以使用getWebClientSession()
方法:
from psdi.common.context import UIContext
wclause = UIContext.getCurrentContext().getWebClientSession().getCurrentApp() \
.getResultsBean().getMboSet().getUserAndQbeWhere()
service.error("The WHERE clause is : ", wclause);
在撰写本文时,文档中未包含getWebClientSession()
方法(因为文档适用于version 7609)。
贷方到developerWorks上的 AndreasBr 查找原始答案:Sending "dialogok" from Automationscript | get WebClientSession in Jython。
答案 1 :(得分:0)
Maximo具有许多不同的where子句源(应用程序限制,对象限制,关系,QBE(示例查询)过滤器,站点限制等)。使用自动化脚本(Python或JavaScript),您应该能够从mbo.getThisMboSet().getUserWhere()
或.getUserAndQbeWhere()
或.getWhere()
捕获所需的内容。正如评论者所指出的那样,.getCompleteWhere()
也可能会有所帮助。
您可以在这些psdi.mbo.MboSet方法上找到JavaDoc,或者在其他here方法中找到“ where子句获取”方法。