Linux is anywhere..
1 Maximo的技术架构
目前开发的程序主要在这 开发的程序应该位于这。
2 Maximo Business Components 技术结构
整个Maximo Business Object 所有的业务对象都是基于RMI 开发的,下面简单介绍RMI。
RMI,远程方法调用(Remote Method Invocation)是Enterprise JavaBeans的支柱,是建立分布式Java应用程序的方便途径。RMI是非常容易使用的,但是它非常的强大。
RMI的基础是接口,RMI构架基于一个重要的原理:定义接口和定义接口的具体实现是分开的。
一个正常工作的RMI系统由下面几个部分组成: 远程服务的接口定义 远程服务接口的具体实现
桩(Stub)和框架(Skeleton)文件 一个运行远程服务的服务器
一个RMI命名服务,它允许客户端去发现这个远程服务 类文件的提供者(一个HTTP或者FTP服务器)
3 Maximo源码常用包
MAXIMO源码有很多包,开发经常用到的是下面几个:
? psdi.app 每个模块对应的商业逻辑,例如psdi.app.po 下面的类就为采购单对应的业务
逻辑。
1
Linux is anywhere..
? ? ? ? ?
psdi.jsp.app 每个模块对应的页面流转代码,例如页面上的菜单及按钮。 psdi.jsptags JSP标签 psdi.mbo 最核心的包 psdi.util 工具类
psdi.workflow 工作流对应的类
4 MAXIMO源码常见类
psdi.mbo.Mbo、psdi.mbo.MboRemote、psdi.mbo.MboSet,psdi.mbo.MboSetRemote这几个个类是最常见的类,所有带业务逻辑的类都是继承Mbo和MboSet。例如WO和WOSET、PR和PRSET。
Mbo类是处理单条记录的类。MboSet类是包含多个Mbo的类,可以看成是Mbo的数组。
一般都是由Mbo调用MboSet,是用getThisMboSet()来得到。 有MboSet得到Mbo是用getMbo()或getMbo(i)得到。 例如: int i=0;
for(MboRemote
mboRemote=mboSetRemote.getMbo(i);mboRemote !=null;mboRemote=mboSetRemote.getMbo(i)) i++; }
psdi.jsp.beans.MboSetBean 这个类是用于存放JSP上输入的数据的类,例如页面上的mbosetid=\就是指的是这个类。
FldXXXX类,是操作字段的类,一般有下面四个方法 Init() 初始化工作
initValue() 初始化值时的工作。
validate() 数据校验,一般在光标离开此字段的输入框时校验。 action() 当validate执行完时,执行的动作
5 客户化修改
在实施MAXIMO经常需要根据客户要求做客户化修改操作,一般我都尽量不改变MAXIMO源码,而是在源码的基础上选择继承或者覆盖。 例如:要修改工单的save方法,就必须做以下操作: 1)继承WOSet public
class MyWOSet extends WOSet implements MyWOSetRemote......{ private
static Logger logger = Logger.getLogger(MyWOSet.class); /** *//**
2
Linux is anywhere..
*//** *//**
* 构造函数 一定要有的
* @param mboserverinterface MboServerInterface * @throws MXException * @throws RemoteException */ public MyWOSet(MboServerInterface mboserverinterface) throws MXException, RemoteException ......{ super(mboserverinterface); }
/** *//** *//** *//**
* 采用自己定义的类 * @param ms MboSet * @return Mbo
* @throws MXException * @throws RemoteException */
public Mbo getMboInstance(MboSet ms) throws MXException, RemoteException ......{ return
new MyWO(ms); } }
2)继承WO public
class MyWO extends WO implements WoRemote ......{ /** *//** *//** *//** * 一定要有的 *
* @param ms * MboSet
* @throws MXException * @throws RemoteException */
public MyWO(MboSet ms) throws MXException, RemoteException ......{ super(ms); }
public
void save() throws MXException, RemoteException ......{ super.save(); customMethod();
3
Linux is anywhere..
}
public
void customMethod() throws MXException, RemoteException ......{ ....... }
6 开发参考手册
6.1 插件设置
把Maximo插件 复制到Eclipse下plugin文件夹下面;启动Eclipse,点击[project]—[properties],如下图,设置安装的Maximo路径。
6.2 创建开发工程
在Eclipse 下面创建普通的java工程 ? 创建工程时候选择如下
4
Linux is anywhere..
? 点击Next
5