Maximo:如何使用 JAVA 读取应用程序的字段?

Maximo: How to read a field of an application using JAVA?

这道题应该很简单。我正在尝试读取 IBM Maximo 应用程序的字段并在方法 getList() 中使用该值。我要使用的值尚未保存在数据库中。

这是一些伪代码:

@Override
public MboSetRemote getList() throws MXException, RemoteException {
    MboSetRemote result = super.getList();

    //Here is where i dont know how to do it
    Date field = getFieldValue(FieldName) 

    //Here is where i want to use the value
    String string = "....field..." 
    result.setWhere(string);

    return result;
}

谢谢大家, 问候

我认为实现在 where 子句中使用字段值的最简单和最安全的方法是使用绑定变量,如下所示:

@Override
public MboSetRemote getList() throws MXException, RemoteException {
    MboSetRemote result = super.getList();

    //Here is where i want to use the value
    String string = "....:fieldName...";
    result.setWhere(string);

    return result;
}

注意 string:fieldName 前面的冒号。当 Maximo 看到这个时,它会在当前记录/Mbo 上查找(不区分大小写)名为 fieldName 的属性,并将 :fieldName 替换为属性中的值——用引号或其他内容括起来,适用于属性的类型(ALN、UPPER、DATE 等)。

此方法比您介绍的方法更好,因为它将使用 Maximo 的框架来防止 SQL 注入攻击等

也就是说,获取字段值的方式如下:

Date fieldValue = getMboValue("FieldName").getDate();

此外,我强烈建议您获取一份 Maximo 的 JavaDocs。你可以做到 here.