maximo功能修改笔记

摘要:
在对系统功能进行了几次简单的修改之后,我对Maximo的bean开发有了一定的了解。现在,修改一个系统功能需要将近两周的时间,并且使用了BeanField知识。现在我仔细总结了修改功能过程中学到的知识:目标效果1:单击页面上的新建按钮弹出一个对话框,然后可以在对话框中进行多项选择,然后单击“确定”,在当前记录上添加所选记录并为页面上的字段设置相应值。

      经过前几次的简单的修改系统功能,对maximo的bean开发已经有了一定了解,现在是耗时近两个礼拜来修改了一项系统功能,所用到的知识 Bean Fld,

下面我认真总结修改功能过程中的学到的知识:

目标效果一:

         点击页面上新增的按钮,弹出一个dialog,然后在dialog里面可以进行多选,然后点击 “确定” 后,在当前的记录上新增已选中的记录,并把页面上的某个字段设置相应的值。

  解决步骤:

    1.在应用程序设计器导出当前设计页面的xml文件,然后用工具打开xml文件,在xml文件里新增一个dialog。 dialog可以在导出来的xml文件里选择一个然后复制进行修改(在这里提醒下:建议新建一个xml文件用来复制原来xml文件里的dialog,最后将复制修改后的dialog复制到原来的xml文件中,做好备份工作),dialog可以理解成弹出的框,以下截图是dialog的xml文件信息:

maximo功能修改笔记第1张

  这里最重要的是 id,id要做到不能重复,其次id为按钮属性上的事件值,中间的标签都是可以在应用程序设计器修改,只要有了dialog,就可以在应用程序设计器里进行应用程序的布局设计。做好了dialog就复制到

原来导出的xml文件中,然后再导入回去。

   2. 导入回去之后,就可以在应用程序设计器中弹出dialog然后进行布局设计,截图如下:

maximo功能修改笔记第2张

点击图中的控件会弹出一个 编辑对话框,在对话框里就可以找到刚刚我们导入进来的dialog,然后双击我们导入进来的dialog的id会弹出已经解析成页面的dialog的xml文件,如下图所示:

maximo功能修改笔记第3张

弹出了dialog,接下来就是布局dialog了,这里的布局设计和以前的布局一样。

  3. 在布局的过程中,里面的字段值虽然已经给定了,如果报红,或者在测试应用的时候后台报错,那么就要考虑关联问题了,如图:

maximo功能修改笔记第4张

这里的关联就是和设计时的字段的关联,然后这里的bean类,一般绑定bean类不在这里绑定,如果在这里绑定类可能会不执行class文件,一般在dialog文件中绑定,绑定类后就可以在类里面写相应的逻辑代码,如图:

maximo功能修改笔记第5张

   3. 在界面上设计个按钮,点击按钮弹出dialog,按钮的事件填写dialog的id就可以了,如图:

maximo功能修改笔记第6张

   好了,以上就是弹出dialog 在maximo里面的做法,具体的逻辑代码还要在代码里面写要实现的效果,这里 一般写 execute()方法,因为 dialogok和dialogcancel事件会默认调用它。在这里的注意事项还是在写xml文件的时候id不要重复。

目标效果二: 

         在页面上做个多部分文本,用来显示父级的idnum和description。在这里需要用到域和关联。

总结我对域的理解

在对 对象新建属性的时候,我们提到了域就相当于给该字段添加了一个check约束:
1. ALN域:数字 字母组合域,由value和description构成,一般用来做状态显示;
2.表域:从指定的对象中查找符合条件的对象供选择;
3. 数字域:使用数字数据类型供选择,一般为一些简单值;
4. 数据范围域:其值通过制定范围来定义;
5. 交叉参考域:通过对Maximo编程,恢复要插入另一字段中的字段值。与其他域不同,此域不涉及值列表,而是取另有一个记录的独特的值(如果此值存在);
 
用于 放大镜和右方向 图标的域:
 lookups + 类
 lookups + 表域/交叉域
 固定值、数字域 valueList
 meus 拼接
 
我这里用的是表域,没有用到lookups+类,写好关联关系就好了,写类可以处理一些业务逻辑。下面说说写类:
   
   对字段的操作,一般是写Fld类,Fld类的一些方法:
    1.构造器:用来确定对象:
     setRelatonship("","")//指定要查找的对象
    String[] as = {getMboValue().getAttributeName()};//获取当前对象属性的名称
    String[] as2 = {"ponum"};//指定目标表/对象的属性
    setLookupKeyMapInOrder(as, as2);//映射
    2.validate(): 进行一些验证,一般是在action()方法执行前执行  

    public void validate() throws MXException,RemoteException{
      MboRemote mbo = getMboValue().getMbo();
      String personid = mbo.getUserInfo().getPersonId();
      if(!personid.equals("MAXADMIN")){
      throw new MXApplicationException("", "只有MAXADMIN用户可选择");
      }
      super.validate();
    }

    3. action(): 选中或者清除时设置相关的动作    

    public void action() throws MXException,RemoteException{
      System.out.println("-------------------------------");
      super.action();
      String currentValue = getMboValue().getCurrentValue().asString();
      if(!currentValue.equals("")){
      getMboValue("PONUMMAS").setValue("content");
      }else{
        getMboValue("PONUMMAS").setValueNull();
      }
    }

    4. getList(): 加入限制条件,设置所需结果集列表
            public MboSetRemote getList() throws MXException,RemoteException{
        MboSetRemote list = super.getList();
        list.setWhere("1=1");
        list.reset();
        return list;
    }

最后总结:

      在当前页面需要新增但又要在列表里新增显示一条记录的情况,可以使用 :

   得到当前的页面的mainMbo---通过mainMbo.getThisMboSet()的到mboSet---再通过mboSet.add()在当前mboSet里新增mbo

注:纯为了自己的复习的同时帮助需要了解这方面的哥们的学习,如果有问题请告诉我,我一定在第一时间修改!

免责声明:文章转载自《maximo功能修改笔记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【Spring123】JdbcTemplate初使用 以及 ORA-01858: a non-numeric character was found where a numeric was expected, ORA-00911: invalid character解决IntelliJ IDEA打war包下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

XMLHTTP使用具体解释

XMLHTTP对象是Microsoft的MSXML开发包中带的一个用HTTP,XML协议訪问web资源的对象. 从MSXML3.0開始出现. 它在AJAX技术中主要用来从其它网络资源获取信息,然后由javascript来更新页面中的部分内容. 採用这样的方法将页面可更新内容细化,不须要更新非常少的内容而刷新整个页面.   XMLHTTP对象的用法例如以...

XXE漏洞复习版本

题记 昨天把很久之前看的XXE、SSRF、../../目录遍历什么的漏洞详细复习了一遍,又读出来不少新东西。来不及了,我们不能把时间浪费在迷茫上。 这次先整理XXE。XXE,外部传入的XML代码。 本来整理一半放弃了,我觉得人家写的挺好的,自己也理解了,看人家的就行,后来又觉得自己重新整一遍才好,过一遍脑子。 XXE介绍 "攻击者通过向服务器注入指定的xm...

Freemarker + xml 实现Java导出word

前言 最近做了一个调查问卷导出的功能,需求是将维护的题目,答案,导出成word,参考了几种方案之后,选择功能强大的freemarker+固定格式之后的wordxml实现导出功能。导出word的代码是可以直接复用的,于是在此贴出,并进行总结,方便大家拿走。 实现过程概览 先在word上,调整好自己想要的样子。然后存为xml文件。保存为freemarker模板...

检验多个xsd的xml是否合法

Java - 使用 XSD 校验 XML https://www.cnblogs.com/huey/p/4600817.html 这种方法不支持多个xsd文件,会报错 可以使用XMLBeans Tools来验证,3.1的版本用起来有问题,后来用2.6版本的就OK了 利用xmlbeans工具对xml格式进行验证(需要xsd文件) https://blog....

优秀的API接口设计原则及方法(转)

一旦API发生变化,就可能对相关的调用者带来巨大的代价,用户需要排查所有调用的代码,需要调整所有与之相关的部分,这些工作对他们来说都是额外的。如果辛辛苦苦完成这些以后,还发现了相关的bug,那对用户的打击就更大。如果API经常发生变化,用户就会失去对提供方失去信心,从而也会影响目前的业务。 但是我们为什么还要修改API呢?为了API看起来更加漂亮?为了提供...

C#生成XML的三种途径 (分享)

为了全面,这里都将XML保存到文件中,有三种生成XML的方式:1。我认为是最原始,最基本的一种:利用XmlDocument向一个XML文件里写节点,然后再利用XmlDocument保存文件。    首先加载要写入的XML文件,但是如果没有的,就要新建,在新建的过程中,要有写入的代码;                XmlDocument doc = n...