maximo二次开发
- 格式:doc
- 大小:152.00 KB
- 文档页数:9
Maxio7.1应用二次开发指南1、文档描述本文档是根据我个人的经验和网上收索的资料整理出来,哈哈~~2、命名规则2.1 基本准则(1)总体说来,按照Maximo的包结构,存放相应的类,将psid改为power即可。
(2)公司开发的类,统一放在power包中。
(3)应用程序业务逻辑类,请放在power.app包中。
(4)应用程序的页面操作类,请放在power.webclient.beans.包中。
(5)工作流过程名,一般为应用程序的名字。
(6)主表与子表之间的联系名,请直接使用子表的名称。
2.2 类名的命名规则以下的规则,按优先级,从高到低排列,如果有冲突,请按优先级高的方式命名。
(1)关于类名的命名规则,请多多熟悉Maximo本身源码类名的命名规则。
(2)扩展原有的类,请不要使用相同的名字,最好加上“CU”关键字。
(3)直接从Mbo或StatefulMbo继承的类,最好使用表名作为类名。
(4)直接从MboSet继承的类,最好使用表名加上“Set”作为类名。
(5)远程接口的名称,最好都加上Remote。
(6)字段的类名,最好以Fld开头。
3、开发说明3.1 搭建开发环境········3.2 配置Eclipse集成开发环境········4 第一个应用程序4.1 业务描述做一个单表的增、删、改、查业务,以下业务为开封电厂实际程序。
4.2 应用设计应用程序名:CUTASK(点检任务)应用程序模块名:CUTASK应用程序表:CUROUTES_TASK (主对象)应用程序关联表:4.3 数据表设计主列:CUROUTES_TASKID4.4 开发步骤4.4.1 第一步建立数据表(1)启动Maximo,转到配置,数据库配置。
(2)点击新建对象。
(3)输入相关信息,如下图:注意这里对象即是表名CUROUTES_TASK、服务输入CUSTAPP、级别选择SITE,如果不是工作流表,请不要选中主对象,存储分区,是你的分区表空间。
MAXIMO系统开发和实施方法MAXIMO系统开发和实施方法 (1)简介 (2)I. 项目启动阶段 (2)II. 设计和开发阶段 (2)III. 系统实施/投产阶段 (3)阶段1:项目启动 (4)1.0 项目定位 (4)2.0 技术环境/架构计划 (4)3.0 软件安装和调试 (4)4.0 实施项目组定位和培训 (5)5.0 需求分析/用户点评估 (5)阶段2:设计和开发 (5)6.0 详细说明开发 (5)7.0 应用设计和开发 (6)8.0 系统测试 (6)阶段3:系统实施/投产 (6)9.0 用户和系统培训 (6)10.0 数据转换/数据导入和系统投产 (7)11.0 实施评估和计划 (7)简介MRO Software公司采用一种“闭环”的系统开发和实施方法,以确保及时、高效的、统一的、成功的实施结果。
这种方法基于每个用户的需求是独特的和重要的这个概念。
通过与我们的用户/合作伙伴的协商,MRO SOFTWARE将实施计划进行剪裁,将MAXIMO进行客户化以达到每个用户/合作伙伴的特定的要求。
无论我们的客户/合作伙伴的实施目标和预算情况如何,MRO SOFTWARE 的实施方法都是灵活的和可衡量的,它提供了最合适的解决方案。
MRO SOFTWARE系统实施方法由三个独特的实施阶段组成:项目启动,设计和开发,以及系统实施和投产。
下面是对组成每个阶段的主要任务或活动的描述。
I. 项目启动阶段实施启动阶段通过定义或进一步精炼项目的工作范围和业务目标,建立技术环境,以及维项目组成员提供产品培训,奠定了一个成功项目的基础。
项目启动阶段的主要任务或活动包括:∙适用性评估/成本估算(Fit Assessment/Cost Estimates)∙项目组织机构(Project Organization)∙技术环境/架构计划(Technical Environment/Infrastructure Planning)∙软件安装和调试(Software Installation and Tuning)∙实施队伍的产品定位和培训(Implementation Team Product Orientation and Training)∙需求分析/各用户点评估(Requirement Analysis/Site Assessment)∙实施计划开发(Implementation Plan Development)II. 设计和开发阶段设计和开发阶段包括了所有与开发和/或剪裁MAXIMO,使其达到每个用户/合作伙伴的特定需求相关的任务。
1.安装weblogic服务器点击下一步:协议容,同意,然后点击下一步,设置Weblogic bea 的主目录为D:\bea,然后下一步:2.maximo数据库的配置首先开始创建数据库,开始—>程序—>Oracle - OraDb10g_home1—>配置和移植工具—> Database Configuration Assistant点击下一步,创建数据库然后输入数据库访问密码。
然后一直下一步,最后点击完成,开始创建数据库,进入确认页面,点击确认。
点击退出,创建数据库完成。
然后用pl-sql访问数据库,用户名system 密码是刚才创建数据库时设置的。
登录后创建表空间,和用户,执行以下脚本。
Create tablespace MAXIMO_DATA datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\MAXIMO\MAXIMO_DATA.DBF' size 1200M autoextend然后导入maximo.dpm文件。
(根据发给的dmp文件和命令导入maximo库)修改数据库连接在{D:\ibm\SMP}\maximo\applications\maximo\properties目录下有两个文件maximo.properties_orig 和maximo.properties,分别为明文和密文数据库配置文件。
Maxmio的数据库连接文件必须使用密文。
可采用以下方式来生成密文属性文件(建议在操作之前备份maximo.properties_orig 和maximo.properties文件)。
1、删除maximo.properties文件。
2、另存maximo.properties_orig文件,名为maximo.properties,并修改其中的数据库连接信息。
3、执行{D:\ibm\SMP}\maximo\tools\maximo目录下encryptproperties.bat文件,如果没有错误发生,那么{D:\ibm\SMP}\maximo\applications\maximo\properties\maximo.properties文件将被生成为密文。
目录第一章引言4第二章系统概述52.1系统设计理念52.2系统设计原则52.2.1 先进性原则52.2.2 系统适用性62.2.3 系统安全性:62.2.4 系统易用性:62.2.5 系统灵活性:62.3实现系统目标的手段72.3.1 引入先进的专业系统72.3.2 规范基础数据与相关档案的管理72.3.3 规范作业流程82.3.4 加强备品备件管理82.3.5 加强对维护和维修计划的控制82.3.6 加强设备管理82.3.7 提高现代化管理的思想和意识92.4系统体系结构92.4.1 系统拓扑结构102.4.2 系统软件结构11第三章系统功能概述123.1采购管理子系统123.1.1 合同管理123.1.2 采购周期管理123.2设备台帐管理子系统133.2.1 在用设备管理133.2.2 备件管理133.2.3 耗材管理133.2.4 捐赠、丢失、报废管理133.2.5 设备折旧管理143.2.6 支行验货管理143.3库存管理子系统143.3.1 入库管理143.3.2 出库管理143.3.3 库存管理143.4维修工单管理子系统153.4.1 维修申请管理153.4.2 作业计划管理153.4.3 作业成本管理153.4.4 维修安排管理153.4.5 维修记录(报告)管理153.4.6 维修核算管理163.5预防性维护管理子系统163.5.1 设备巡检管理163.5.2 维护设备预警管理163.6资源管理子系统163.6.1 服务商管理163.6.2 供应商管理173.6.3 人员管理173.7条码设备巡查子系统173.8综合查询/统计分析子系统17第四章系统实施规划184.1实施目标184.2实施过程184.2.1 项目实施依据的标准和技术:184.2.2 项目组织184.2.3 需求提出整理阶段194.2.4 总体规划194.2.5 系统开发过程194.2.6 系统安装调试测试194.2.7 培训服务204.3设备要求(建议)204.4软件环境214.5人员组织224.6项目估算224.6.1 工作细分结构(WBS)224.6.2 工作量估算224.7系统远期展望23第五章客户服务和技术支持245.1客户支持服务体系245.1.1 客户支持体系245.1.2 客户项目各个阶段的服务255.1.3 项目组织管理255.2售后服务265.2.1 技术支持热线265.2.2 技术再培训协议26第一章引言现代企业管理越来越强调利用有形资产来提供优质服务的能力,即通过资产管理来确保有形资产物尽其用、安全运行,在希望的时间和地点提供需要的设备,同时尽可能地降低运行和维护成本。
COMIS库存管理与条形码系统集成方法探索摘要:首先介绍了COMIS库存管理基本概念和功能;然后介绍了条形码系统,包括条形码打印子系统和条形码扫描数据上传、下载子系统;最后详细探讨了这两个子系统与COMIS库存管理的集成方法。
关键词:COMIS;条形码打印;条形码扫描0引言COMIS是大亚湾核电站生产运营和维修管理系统,是在MAXIMO基础上进行客户二次开发而形成的。
MAXIMO主要通过工作票、库存管理、采购管理、设备管理、预防维修、标准包、人力资源、日程管理等8个功能模块来实现管理功能。
为了提高管理效率,在库存管理过程中,采用条形码扫描方式替代手工输入编码及批次等数据方式,是一个有效的方案。
为了实现该方案,需要了解和选择条形码打印、条形码扫描数据上传和下载以及它们与COMIS系统的接口方式。
1概念和术语本文的主要目的是探索COMIS系统与条形码系统的接口集成方法,因此不会详细说明COMIS系统的各模块功能,仅对涉及到的概念或术语作简单描述,如果读者需详细了解,可参考MAXIMO标准文档。
本文将定义的概念和术语有:COMIS库存管理、条形码打印、条形码扫描。
(1)COMIS库存管理。
COMIS库存管理包括物资验收、发料、退料、物资转移、盘点及库存调整、物资保养、货位管理、交易查询等功能。
大亚湾核电站的库存物资全部启用了批次管理,根据批次可以方便跟踪物资的寿期,也用于对物资进行周期性的保养。
因此,需要对物资的每个批次打印标签以利于识别。
(2)条形码打印。
如果企业启用了条形码管理,条形码打印会发生在许多环节。
一般来说,在物资验收入库时会要求打印好条形码,将条形码粘贴在实物上或货架上;在发料或库存转储时,如果条形码已不可识别,需重新打印;在盘点时有可能需打印条形码。
总之,有可能需要在业务的一些环节根据入库单、转储单进行条形码打印,也有可能根据库存地点、仓库号、物资编码、批次号等库存参数查询出库存数据后进行条形码打印。
一,MAXIMO源码常用包MAXIMO源码有很多包,开发经常用到的是下面几个:psdi.app 每个模块对应的商业逻辑,例如psdi.app.po 下面的类就为采购单对应的业务逻辑。
psdi.jsp.app 每个模块对应的页面流转代码,例如页面上的菜单及按钮psdi.jsptags JSP标签psdi.mbo 最核心的包psdi.util 工具类psdi.workflow 工作流对应的类二,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)得到。
psdi.jsp.beans.MboSetBean 这个类是用于存放JSP上输入的数据的类,例如页面上的mbosetid="rec"就是指的是这个类。
FldXXXX类,是操作字段的类,一般有下面四个方法Init() 初始化工作initV alue() 初始化值时的工作validate() 数据校验,一般在光标离开此字段的输入框时校验action() 当validate执行完时,执行的动作三,获取外表Mboset,其中红色字体为表名。
MboSetRemote persongroupteam =MXServer.getMXServer().getMboSet("PERSONGROUPTEAM", getUserInfo());设置满足条件的数据:persongroupteam.setWhere("RESPPARTYGROUP = '" + userName + "'");RESPPARTYGROUP为表PERSONGROUPTEAM中的某一字段,这句的意思是搜索出满足字段的USERNAME的记录集。
1、MAXIMO源码常用包MAXIMO源码有很多包,开发经常用到的是下面几个:psdi.app 每个模块对应的商业逻辑,例如psdi.app.po 下面的类就为采购单对应的业务逻辑。
psdi.jsp.app 每个模块对应的页面流转代码,例如页面上的菜单及按钮。
psdi.jsptags JSP标签psdi.mbo 最核心的包psdi.util 工具类psdi.workflow 工作流对应的类2、MAXIMO源码常见类psdi.mbo.Mbo,psdi.mbo.MboRemote 与psdi.mbo.MboSet,psdi.mbo.MboS etRemote这几个个类是最常见的类,所有带业务逻辑的类都是继承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="rec"就是指的是这个类。
FldXXXX类,是操作字段的类,一般有下面四个方法Init() 初始化工作initValue() 初始化值时的工作。
validate() 数据校验,一般在光标离开此字段的输入框时校验。
action() 当validate执行完时,执行的动作3.客户化修改在实施MAXIMO经常需要根据客户要求做客户化修改操作,一般我都尽量不改变MA XIMO源码,而是在源码的基础上选择继承或者覆盖。
例如:我要修改工单的save方法,就必须做以下操作:1)继承WOSetpublic class MyWOSet extends WOSet implements MyWOSetRemote...{private static Logger logger = Logger.getLogger(MyWOSet.class);/** *//*** 构造函数一定要有的* @param mboserverinterface MboServerInterface* @throws MXException* @throws Rem oteException*/public MyWOSet(MboServerInterface mboserverinterface) throws MXException, Rem oteException ...{super(mboserverinterface);/** *//*** 采用自己定义的类* @param ms MboSet* @return Mbo* @throws MXException* @throws RemoteException*/public Mbo getMboInstance(MboSet ms) throws MXException, RemoteException ...{return new MyWO(ms);}}2)继承WOpublic class MyWO extends WO implements WoRemote ...{/** *//*** 一定要有的东东** @param ms* MboSet* @throws MXException* @throws Rem oteException*/public MyWO(MboSet ms) throws MXException, RemoteException ...{super(ms);}public void save() throws MXException, RemoteException ...{super.save();customMethod();}public void customMethod() throws MXException, RemoteException ...{.......}3)修改数据库update maxtables2 set classname='com.app.workorder.MyWOSet' where tbn ame='WORKORDER';update maxtablescfg set set classname='com.app.workorder.MyWOSet' wher e tbname='WORKORDER';commit;MAXIMO开发总结(二)使用MAXIMO平台做开发,对很多东西都迷迷糊糊的,在这里一点一点总结,理清思路。
一、虚拟表顾名思义就是不存在的表,它实际上只是被配置在MAXIMO的表信息中,但在物理中是不存在的,是虚拟的。
虚拟表,主要用来存储临时数据,因为maximo用的都是对象或者说是对象集,如果你想临时存储一些数据,那么你就要构造这个虚表。
一般是在页面代码中调用。
1、最常见的虚拟表就是修改状态的表,例如WOChangeStatus、WOChangeStatusSe t。
1)这种类的代码基本大同小异,public class WOChangeStatusSet extends ChangeStatusSetimplements NonPersistentMboSetRemote{public WOChangeStatusSet(MboServerInterface mboserverinterface)throws MXException, RemoteException{super(mboserverinterface);}protected Mbo getMboInstance(MboSet mboset)throws MXException, RemoteException{return new WOChangeStatus(mboset);}public String getName(){return "WOChangeStatus";}protected MboSetRemote getMboIntoSet(MboRemote mboremote)throws MXException, RemoteException{MboSetRemote mbosetremote = getMboServer().getMboSet("WORKORDER", getUs erInfo());SqlFormat sqlformat = new SqlFormat(mboremote, "wonum = :wonum");mbosetremote.setWhere(sqlformat.format());mbosetremote.setApp(getApp());return mbosetremote;}}public class WOChangeStatus extends NonPersistentMboimplements NonPersistentMboRemote{public WOChangeStatus(MboSet mboset)throws MXException, RemoteException{super(mboset);}public void add()throws MXException, RemoteException{super.add();java.util.Date date = MXServer.getMXServer().getDate();setValue("AsOfDate", date, 11L);setValue("ChildStatus", getOwner().getBoolean("ChangeChildStatus"), 11L);setValue("SINGLEWO", 0, 11L);}}2)需要在WOService 中建立联系public class WOService extends AppService implements WOServiceRemote{。