二次开发培训1、二次开发介绍1.1、对象及属性设计好表结构后,通过MAXIMO中“数据库配置”应用程序创建表。创建过程中需要注意以下属性:1.1.1、对象选项选项备注表名:18个字符的字母和数字的组合类:用于处理对象业务逻辑的Java类。格式必须是带完整的包名,如:psdi.app.financial.AccountDefaultsSet。主对象?表示是否是工作流程的主对象,如果没有选中该复选框,则在创建工作流时不能选择该对象。1.1.2、属性选项选项备注属性名:50个字符的字母和数字的组合标题:此处输入的值会在用户查看字段帮助时显示类型:MAXIMO提供的字段类型。长度:字段长度域:该字段可供选择值的域名称类:该字段上用于验证和触发的业务逻辑java类名。格式必须是带完整的包名,如:psdi.app.site.FldOrganizationID要求?是否要求该段必须填写?1.2、MBO介绍如果需要在新建的对象中加入特殊的业务逻辑,则需要自己编写MBO,并部署到相应的对象。操作方法是在数据库配置应用程序中,找到指定的对象,并在“类”字段处输入值。如下图所示:1.2.1、MBO介绍Mbo可理解为数据库中某一条记录,其方法都是对记录的操作,如:添加、删除、修改等。1.2.1.1、MBO中常用的方法方法名功能add新建mboinit初始化mbosave保存mbodelete删除mbogetXXX根据字段类型获取mbo内字段数据,如getString(),getInt(),getDouble()等setValue设置mbo内字段的值1.2.2、MboSet介绍MboSet可以理解为Mbo的集合,既多个Mbo。其方法都是对整个Mbo集合的操作。1.2.2.1、MboSet常用方法方法名功能save保存mboSetcount得到当前MboSet包含的记录数setWhere设置对mboset的过滤条件setOrderBy设置对mboset的排序条件getMbo得到指定的mbo1.2.3、字段绑定逻辑介绍如果需要在指定的字段上加入特殊的业务逻辑,则需要自己classes,并部署到相应的字段上。必须继承psdi.mbo.MboValueAdapter或psdi.mbo.MAXTableDomain(弹框)。操作方法是在数据库配置应用程序中,找到指定的对象,并在“类”字段处输入值。保存修改后,需要停止服务,执行configdb.bat使更改生效。如下图所示:1.2.3.1、字段绑定类中常用的方法方法名功能init初始化字段时触发action字段值发生变化时触发1.3、AppBean介绍AppBean用于实现MAXIMO6中应用程序的界面操作控制,如界面的新建、保存、发送工作流等。在HARV-EAM系统中可参考“采购单”应用程序的AppBean,harv.webclient.beans.po.CtmPOAppBean。1.3.1、AppBean常用方法介绍方法名功能initializeApp应用程序初始化SAVE界面的保存事件getMboSet得到当前的MboSetgetMbo得到当前的Mbo1.4、DataBean介绍DataBean用于实现MAXIMO6中特定数据源的界面操作控制,如弹出窗口中按钮的事件等。在HARV-EAM系统中可参考“采购单”应用程序的DataBean,harv.webclient.beans.pocheck.SelectPoCheckLineBean。方法名功能initializeApp数据源的初始化getMboSet得到当前的MboSetgetMbo得到当前的MboXXX对应按钮的事件2、开发工具配置2.1、启动eclipse启动eclipse,File—〉New—〉Project2.2、新建工程选择JavaProject输入工程名称配置工程所需的JDK,如果生产环境是websphere,则eclipse中的JDK必须配置为WebSphere的jdk。否则,编译完成的类发布到websphere环境下有可能无法正常使用。配置过程如下:配置工程编译完成后classes的输出目录配置完成。添加工程需要引入的classes文件目录3、二次开发范例创建一个应用程序,用于管理代保管库的退库申请。3.1、编写MBO编写退库申请业务中两张表需要用到的MBO,编写完成后需用java的rmic进行编译。1、用javac编译class,将编译好的class文件拷贝到一个MAXIMO环境的相应目录下;2、通过命令行,设置classpath为MAXIMO环境目录。如:setclasspath=C:\Maximo\applications\maximo\businessobjects\classes3、在存放ReturnLoc.java的目录下,用以下命令进行编译:rmic-d.harv.app.inventory.ReturnLoc4、在该目录的harv\app\inventory目录下会同时产生ReturnLoc_Stub.class文件;5、将ReturnLoc.class和ReturnLoc_Stub.class文件拷贝到C:\Maximo\applications\maximo\businessobjects\classes\harv\app\inventory目录下。源代码,见ReturnlocJAVA.rar3.2、创建对象及属性3.2.1、代保管物资入库主表:HDRETURNLOC选项内容备注表名:HDRETURNLOC代保管物资入库主表类:harv.app.inventory.ReturnLocSet主对象?YNo.字段名字段描述类型长度域类1.ORGID组织机构UPPER8Y2.SITEID地点标示UPPER10Y3.HDRETURNLOCIDINTEGERN4.REQNUM申请编号UPPER30N5.DESCRIPTION描述ALN50Y6.DEPTNUM部门UPPER30Y7.ENTERBY创建人UPPER10NNo.字段名字段描述类型长度域类8.ENTERDATE创建日期DATEN9.STATUS状态ALN20N10.STATUSDATE状态日期DATETIMEN3.2.1.1、创建关系No.关系名父表子表条件备注1、ENTERBYHDRETURNLOCPERSONpersonid=:enterby2、HDDEPTHDRETURNLOCHDDEPTdeptnum=:deptnum3、HDRETURNLOCLINEHDRETURNLOCHDRETURNLOCLINEreqnum=:reqnum3.2.2、代保管物资入库行表:HDRETURNLOCLINE选项内容备注表名:HDRETURNLOCLINE代保管物资入库行表类:harv.app.inventory.ReturnLocLineSe级别:SITE主对象?NNo.字段名字段描述类型长度NULL?域类1.ORGID组织机构UPPER8N2.SITEID地点标示UPPER10N3.REQNUM申请编号UPPER10N4.LINENUM申请行号INTEGERN5.ITEMNUM库存项目ALN30N6.DESCRIPTION描述ALN50N7.LOCATION仓库UPPER30N8.ORDERQTY数量DECIMAL15,2N9.ISSUEUNIT单位ALN30Y10.ENTERBY申请人ALN30N11.ENTERDATE申请日期DATEN3.2.2.1、创建关系No.关系名父表子表条件备注1.ENTERBYHDRETURNLOCLINEPERSONpersonid=:enterby2.ITEMHDRETURNLOCLINEITEMitemnum=:itemnum3.LOCATIONHDRETURNLOCLINELOCATIONStype='STOREROOM'andlocation=:locationandisdbgku=1停止MAXIMO服务,进入C:\Maximo\tools\maximo目录,执行configdb.bat,使数据库更改生效。3.3、创建应用程序3.3.1、新建应用程序3.3.2、界面布局多行选择1、新建2、应用程序信息3、高级应用程序链接记录详细信息子表用于多行选择列属性用于链接到记录详细信息列属性打开明细删除行关联子表属性必须指定主子表的关系“打开明细”按钮属性子表“新建行”按钮“删除行”按钮属性“新建行”按钮属性3.3.3、增加操作签名选项:可以通过授权控制的功能必须首先在该界面中添加。选择操作菜单:“选择操作”中的菜单必须在该界面中添加,并且只能从“签1、签名选项2、选择操作菜单3、工具栏按钮名选项”对话框中已经添加的选项中选择。工具栏按钮:“选择操作”中的菜单必须在该界面中添加,并且只能从“签名选项”对话框中已经添加的选项中选择。从“签名选项”中选择从“签名选项”中选择