maximo二次开发
- 格式:doc
- 大小:175.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,如果不是工作流表,请不要选中主对象,存储分区,是你的分区表空间。
1、在数据库中找到maxpresentation找到要添加dailog的表,语句如下:
select t.*,t.rowid from maxpresentation t ;
找到后,(可以通过ctrl+c ctrl+v的形式)添加一个dialog。
2、进到maximo系统的“应用程序设计”中,找到相应的应用。
点击“编辑对话”出现才
添加的dialog。
3、按规定的样式向dialog中托入相应控件,对控件属性进行相应的设置。
4、添加签名选项
(1)点选择操作菜单,选择“添加/修改签名选项”。
(2)在“添加/修改签名选项”点“新建行”添加一个签名选项。
(注:签名选项名与dailog名相同)
5、将dialog添加到实际应用中:
(1)添加到“选择操作菜单”中。
(2)添加到“按钮”中。
(3)添加到“工具栏菜单”中
<1>点选“择操作菜单”,选择“添加/修改工具栏菜单”。
<2>在“添加/修改工具栏菜单”点“新建行”,添加记录。
6、为用户授权
(1)找到相应的组,到“应用程序”选项卡下,授权。
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文件将被生成为密文。
COMIS库存管理与条形码系统集成方法探索摘要:首先介绍了COMIS库存管理基本概念和功能;然后介绍了条形码系统,包括条形码打印子系统和条形码扫描数据上传、下载子系统;最后详细探讨了这两个子系统与COMIS库存管理的集成方法。
关键词:COMIS;条形码打印;条形码扫描0引言COMIS是大亚湾核电站生产运营和维修管理系统,是在MAXIMO基础上进行客户二次开发而形成的。
MAXIMO主要通过工作票、库存管理、采购管理、设备管理、预防维修、标准包、人力资源、日程管理等8个功能模块来实现管理功能。
为了提高管理效率,在库存管理过程中,采用条形码扫描方式替代手工输入编码及批次等数据方式,是一个有效的方案。
为了实现该方案,需要了解和选择条形码打印、条形码扫描数据上传和下载以及它们与COMIS系统的接口方式。
1概念和术语本文的主要目的是探索COMIS系统与条形码系统的接口集成方法,因此不会详细说明COMIS系统的各模块功能,仅对涉及到的概念或术语作简单描述,如果读者需详细了解,可参考MAXIMO标准文档。
本文将定义的概念和术语有:COMIS库存管理、条形码打印、条形码扫描。
(1)COMIS库存管理。
COMIS库存管理包括物资验收、发料、退料、物资转移、盘点及库存调整、物资保养、货位管理、交易查询等功能。
大亚湾核电站的库存物资全部启用了批次管理,根据批次可以方便跟踪物资的寿期,也用于对物资进行周期性的保养。
因此,需要对物资的每个批次打印标签以利于识别。
(2)条形码打印。
如果企业启用了条形码管理,条形码打印会发生在许多环节。
一般来说,在物资验收入库时会要求打印好条形码,将条形码粘贴在实物上或货架上;在发料或库存转储时,如果条形码已不可识别,需重新打印;在盘点时有可能需打印条形码。
总之,有可能需要在业务的一些环节根据入库单、转储单进行条形码打印,也有可能根据库存地点、仓库号、物资编码、批次号等库存参数查询出库存数据后进行条形码打印。
《基于XML的数控系统人机界面二次开发平台的设计与实现》一、引言随着工业自动化技术的不断发展,数控系统在制造业中的应用越来越广泛。
人机界面作为数控系统的重要组成部分,其性能和易用性直接影响到操作人员的工作效率和设备运行效率。
为了提高数控系统的人机交互性能,本文提出了一种基于XML的数控系统人机界面二次开发平台的设计与实现方案。
该平台通过XML技术实现界面的灵活配置和快速开发,提高了系统的可维护性和扩展性。
二、平台设计1. 总体设计本平台采用模块化设计思想,将系统分为界面设计模块、界面生成模块、交互逻辑处理模块和数据库管理模块。
其中,界面设计模块采用XML技术实现界面的灵活配置;界面生成模块负责将XML配置文件转换为实际的界面;交互逻辑处理模块负责处理用户操作和系统响应;数据库管理模块负责存储和管理系统数据。
2. 界面设计模块界面设计模块采用XML技术实现界面的灵活配置。
XML文件采用分层结构,定义了界面元素的类型、属性和布局等信息。
通过XML文件,用户可以方便地定制和修改界面,而无需编写复杂的代码。
此外,XML文件还支持自定义标签,以满足特定需求。
3. 界面生成模块界面生成模块负责将XML配置文件转换为实际的界面。
该模块采用XML解析技术,读取XML文件中的配置信息,生成相应的界面元素和布局。
同时,该模块还支持皮肤和主题的切换,以满足不同用户的需求。
4. 交互逻辑处理模块交互逻辑处理模块负责处理用户操作和系统响应。
该模块通过监听器机制实现与界面的交互,当用户进行操作时,监听器会捕获事件并调用相应的处理方法。
此外,该模块还支持自定义逻辑处理函数,以满足特定需求。
5. 数据库管理模块数据库管理模块负责存储和管理系统数据。
该模块采用关系型数据库管理系统(RDBMS),通过SQL语句实现数据的增删改查等操作。
同时,该模块还支持数据的备份和恢复功能,以保证数据的安全性。
三、平台实现1. 技术选型本平台采用Java语言进行开发,使用Spring框架实现系统的架构设计和业务逻辑处理。
一,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() 初始化工作initValue() 初始化值时的工作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 RemoteException*/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 RemoteException*/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{。