`
jjxliu306
  • 浏览: 157726 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

为maximo应用程序增加操作类及操作方法

阅读更多
关于为maximo应用程序增加操作类及操作方法的操作:
   (1)首先进入应用程序设计器,打开相应的应用程序;
   (2)在界面中打开"选择操作"的下拉菜单(位于界面的最上方);
   (3)选择"切换显示所有控件",将隐藏的系统对象显示出来;
   (4)点击"presentation"控件,然后点击"控制属性"按钮,(该按钮在界面的最上面),打开"演示属性"窗口;
   (5)为App Bean类设置值:如ibmcust.webclient.beans.yum.OrderinforAppBean,该类需要继承AppBean,我这里选择的是继承StatefulAppBean;
   (6)然后可以为该类增加insert,save,delete,等功能方法,需要override 父类里的这些相关方法;
   (7)编写完成后,可以将该类放到maximo.ear中的maximouiweb.war目录下的WEB-INF/classes目录下或打成jar放到lib目录下(打成jar后需要重新启动服务器);
类例代码:

package ibmcust.webclient.beans.yum;

import java.rmi.RemoteException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;


import psdi.mbo.MboRemote;
import psdi.mbo.MboSetRemote;

import psdi.util.MXException;
import psdi.webclient.beans.common.StatefulAppBean;
import psdi.webclient.system.controller.Utility;

public class OrderinforAppBean extends StatefulAppBean{

private final String APPLYER = "APPLYER";
private final String ORDERSTATUSNAME = "ORDERSTATUSNAME";
private final String DEGREENAME = "DEGREENAME";
private final String CREATEDATE = "CREATEDATE";

private final String DEFAULTDEGREE = "普通";

private final String STATEDRAFT = "Draft";
private final String STATENEW = "New";
private final String STATEPEDDING = "Pending";
private final String STATECLOSE = "Closed";
private final String STATECANCEL = "Cancel";

private final String MAXORDERCODE = "MAXORDERCODE";
private final String SEQUENCENUMBER = "SEQUENCENUMBER";

public int INSERT() throws MXException, RemoteException{
    int ret = super.INSERT();
 
    String username = this.getMXSession().getUserName();
    this.setValue(APPLYER, username);
    this.setValue(ORDERSTATUSNAME,STATEDRAFT);
    this.setValue(DEGREENAME,DEFAULTDEGREE);
    this.setValue(CREATEDATE,getCurrentDatetime());
    this.setValue("ISREADONLY", "N");
    return ret;
}

public int SAVE() throws MXException, RemoteException {
String SequenceNumber = this.getString(SEQUENCENUMBER);

if(SequenceNumber == null || SequenceNumber.equals("")){
MboRemote currMbo = (MboRemote) this.getMbo();
    MboSetRemote msr = currMbo.getMboSet(MAXORDERCODE);
    String maxNumber = "";
   
    if(msr.isEmpty()){
    } else {
    MboRemote yumRemote = msr.getMbo(0);    
    maxNumber = yumRemote.getString(SEQUENCENUMBER);
    }
    maxNumber = getSequenNumber(maxNumber);
    this.setValue(SEQUENCENUMBER,maxNumber);    
}

String status = this.getString(ORDERSTATUSNAME);
if(status.equals(STATEDRAFT)){
this.setValue("EDITER", this.getMXSession().getUserName());
}else{}

int ret = super.SAVE();
  
return ret;
}

public int DELETE() throws MXException, RemoteException {
if(!this.getString(ORDERSTATUSNAME).equals(this.STATEDRAFT)){
Utility.showMessageBox(sessionContext.getCurrentEvent() ,
         "信息",
         "维修单已发送,不允许删除!",
         0);
return -1;
}else{}

return super.DELETE();
}

public void PENDING() throws MXException,RemoteException{
String status = this.getString(this.ORDERSTATUSNAME);
if(status != null && !status.equals(this.STATENEW) && !status.equals(this.STATEPEDDING)){
Utility.showMessageBox(this.sessionContext.getCurrentEvent(),
"错误",
"当前状态的工作单不允许进行派单操作!",0);
return;
}else{}

String station = this.getString("STATIONCODE");
        if(station == null || station.equals("")){
            Utility.showMessageBox(this.sessionContext.getCurrentEvent(),
            "错误",
            "工作站未选择!",
            0);
        return;
        }else{}
       
        String engineer = this.getString("ENGINEERCODE");
        if(engineer == null || engineer.equals("")){
        Utility.showMessageBox(this.sessionContext.getCurrentEvent(),
        "错误",
        "维修工程师未选择!",
        0);
        return;
        }else{}
       
        Date resTime = this.getDate("RESPONSETIME");
        if(resTime == null){
        Utility.showMessageBox(this.sessionContext.getCurrentEvent(),
        "错误",
        "响应时间为空!",
        0);
        return;
        }else{}
       
        this.setValue(ORDERSTATUSNAME,STATEPEDDING);
        this.setValue("ASSIGNER", this.getMXSession().getUserName());
        this.SAVE();       
}

public void CLOSE() throws MXException,RemoteException{
String state = this.getString(this.ORDERSTATUSNAME);
if(!state.equals(this.STATEPEDDING)){
    Utility.showMessageBox(this.sessionContext.getCurrentEvent(),
    "错误",
    "未进行派单操作!",
    0);
return;
}else{}

String station = this.getString("STATIONCODE");
        if(station == null || station.equals("")){
            Utility.showMessageBox(this.sessionContext.getCurrentEvent(),
            "错误",
            "工作站未选择!",
            0);
        return;
        }else{}
       
        String engineer = this.getString("ENGINEERCODE");
        if(engineer == null || engineer.equals("")){
        Utility.showMessageBox(this.sessionContext.getCurrentEvent(),
        "错误",
        "维修工程师未选择!",
        0);
        return;
        }else{}
       
        Date arrTime = this.getDate("ARRIVETIME");
        if(arrTime == null){
        Utility.showMessageBox(this.sessionContext.getCurrentEvent(),
        "错误",
        "实际到场时间为空!",
        0);
        return;
        }else{}
       
        Date colTime = this.getDate("CLOSETIME");
        if(colTime == null){
        Utility.showMessageBox(this.sessionContext.getCurrentEvent(),
        "错误",
        "服务完成时间为空!",
        0);
        return;
        }else{}
       
        this.setValue(ORDERSTATUSNAME,this.STATECLOSE);  
this.SAVE();
this.getMbo().setFlag(7L, true);
}

public void CANCEL() throws MXException,RemoteException{
String canReason = this.getString("CANCELREASON");
if(canReason == null || canReason.equals("")){
Utility.showMessageBox(this.sessionContext.getCurrentEvent(),
"错误",
"请填写取消原因!",
0);
return;
}

this.setValue("CANCELTIME",this.getCurrentDatetime());
this.setValue(ORDERSTATUSNAME, this.STATECANCEL);

this.SAVE();
this.getMbo().setFlag(7L, true);
}

public void SENDOR() throws MXException, RemoteException{
if(!this.getString(ORDERSTATUSNAME).equals(this.STATEDRAFT)){
Utility.showMessageBox(sessionContext.getCurrentEvent() ,
         "信息",
         "维修单已发送!",
         0);
return;
}else{}

this.setValue(ORDERSTATUSNAME, this.STATENEW);
this.setValue("SENDDATE",getCurrentDatetime());
this.SAVE();
this.getMbo().setFlag(7L, true);
}

public String getSequenNumber(String num1) throws RemoteException, MXException{

String num = "";

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Date curDate = this.getDate("CREATEDATE");
String currDate = sdf.format(curDate);

if(num1 == null || num1.equals("")){
num = currDate + "001";
}else{
num = num1.substring(8,num1.length());
int temp = Integer.parseInt(num) + 1;
    int len = Integer.toString(temp).length();
    switch(len){
    case 1:
       num = "00" + Integer.toString(temp);
       break;
    case 2:
    num = "0" + Integer.toString(temp);
    break;
    default:
    num = Integer.toString(temp);
        break;
    }
    num = currDate + num;
}

return num;
}

public boolean setReadOnlyState() throws RemoteException, MXException{
boolean lb = false;
        String state = this.getString(ORDERSTATUSNAME); 
if(state.equals(this.STATENEW)){
this.getMbo().setFlag(7L, true);
lb = true;
}else{}
return lb;
}

/**
* get current date time
* @return data format(yyyy-MM-dd hh:mm:ss)
*/
public String getCurrentDatetime(){
//SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

Calendar now = Calendar.getInstance();
String time = now.get(Calendar.YEAR)+"-"+(now.get(Calendar.MONTH)+1)+"-"+now.get(Calendar.DAY_OF_MONTH)+" "
+now.get(Calendar.HOUR_OF_DAY)+":"+now.get(Calendar.MINUTE)+":"+now.get(Calendar.SECOND);
return time;
}
}
  
  
1
0
分享到:
评论

相关推荐

    maximo 研发经验

    - **类的发布**:发布类是将Java类与Maximo应用程序关联的过程,使得它们在前端可用。 - **进入应用程序设计器应用程序**:这是创建和编辑Maximo应用程序的工具,可以定义屏幕布局、字段显示、业务规则等。 - **新建...

    maximo开发指南 maximo maximo开发

    本开发指南旨在为Maximo 6.20应用程序提供全面的开发指导与技术支持,包括系统架构设计、开发环境搭建、代码编写规范及最佳实践等内容。 #### 2. 系统架构 Maximo 6.20的系统架构主要分为以下几个层次: - **业务...

    超全的MAXIMO 用户手册

    10. **MAXIMO开发入门**:为开发者提供指导,包括如何使用MAXIMO的应用程序开发框架(ADF)、自定义字段、工作流和Web服务。 11. **系统配置与优化**:讨论如何根据企业需求调整MAXIMO的配置参数,提高系统性能,并...

    maximo 7.1 认证学习材料

    ### Maximo 7.1 认证学习材料 #### IBM MAXIMO 认证教材概览 本教材旨在帮助读者成功获得IBM Maximo...通过以上内容的学习,考生将能够全面了解Maximo V7.1的主要功能和操作方法,为顺利通过认证考试打下坚实的基础。

    maximo

    13. `MAXAPPS`:Maximo应用程序相关数据。 14. `MAXDOMAIN`:所有Maximo域的信息。 15. `MAXMENU`:导航菜单配置。 16. `MAXMODULES`:Maximo模块定义。 17. `MAXMESSAGES`:错误和提示信息。 18. `MAXOBJECT`:记录...

    maximo个人经验总结——魏慧

    在Maximo中,过滤器是用于优化应用程序列表显示的关键工具。当在数据库配置的属性列中没有找到可过滤的文本框时,这通常意味着配置存在问题或未正确设置。为了解决这个问题,魏慧建议检查并确保在相关的属性列上正确...

    maximo7部署集群

    #### 五、问题及解决方法 - **数据一致性问题**:通过使用共享数据库和缓存机制来确保各节点间的数据一致性。 - **会话管理**:采用粘性会话策略或者通过负载均衡器进行会话复制,确保用户会话的一致性。 - **故障...

    maximo7.1.1.8官方api

    Maximo 7.1.1.8 官方API是一个重要的资源,对于开发和维护IBM Maximo Asset Management系统的程序员来说,它...通过深入学习和实践,开发者可以构建出高效、稳定且功能丰富的应用程序,提升企业资产管理的效率和效果。

    maximo系统中corn任务设置

    例如,你可以创建一个名为`JDTes`的Java类,该类扩展了`SimpleCronTask`并重写了`cronAction()`方法,这是执行定时任务的核心方法。 2. **代码编写与部署** - 编写完`JDTes`类后,你需要将编译后的`.class`文件...

    maximo_Api文档_类文件详解.rar

    "maximo_Api文档_类文件详解"是一个关于Maximo API的详细文档,旨在为开发者提供深入理解Maximo底层方法的指南。.chm文件是一种Microsoft帮助文档格式,通常包含丰富的索引、搜索功能以及详细的技术信息。 在Maximo...

    maximo6-JAVA调用WEBSERVICE

    WEBSERVICE是一种基于网络的、松散耦合的服务提供和消费方式,它允许不同平台的应用程序之间进行数据交换。在JAVA中,通常使用SOAP(Simple Object Access Protocol)协议和WSDL(Web Services Description Language...

    maximo 7.1管理员指南(中文)

    - **应用程序服务器**:用于运行 Maximo 应用程序的服务器。 - **数据库服务器**:存储 Maximo 数据的服务器。 - **系统要求**:文档中提到了典型的系统网络配置以及不同级别的设置,包括系统级、组织级和站点级...

    Maximo二次开发培训

    AppBean是控制MAXIMO6应用程序界面操作的关键,例如新建、保存和发送工作流。通过自定义AppBean,可以实现特定的应用逻辑,如在HARV-EAM系统中参考`harv.webclient.beans.po.CtmPOAppBean`。AppBean的常用方法包括`...

    Maximo EAM平台开发笔记2

    按照官方文档逐步进行安装,包括数据库服务器、中间件以及Maximo应用程序的安装。 3. 注意检查并设置正确的环境变量。 4. 确保数据库服务器正确配置,例如监听器配置等。 **1.4 数据库DMP文件移植** - **移植...

    Maximo 官方API

    通过深入学习和应用Maximo官方API,开发者可以构建出与Maximo系统无缝集成的应用程序,优化业务流程,提升工作效率。`maximo 官方API.chm`文件很可能是官方提供的帮助文档,包含了完整的API参考信息,是开发过程中不...

    一个基于eclipse的Maximo6集成开发环境配置说明_曹慧民.docx

    文档标题和描述提到了"一个基于eclipse的Maximo6集成开发环境配置说明",这是一份关于如何在Eclipse集成开发环境中配置Maximo 6的详细指南。...每个步骤都旨在帮助开发者顺利地进行Maximo应用程序的开发和调试工作。

    ibmMaximo高级开发.pdf

    RMI使得Java对象能够在不同的Java虚拟机之间进行交互,创建分布式应用程序。它的核心思想是接口与实现分离,通过桩(Stub)和框架(Skeleton)文件实现远程服务的调用。RMI系统包括远程服务接口定义、具体实现、桩...

    TSAM Install

    - **启动Web应用程序**:测试WebSphere Application Server (WAS)、Tivoli Provisioning Manager (TPM) 和Maximo UI是否能够正常启动。 - **安装SRM Fixpack**:安装TSAM的最新修复包,以增强系统的稳定性和安全性。...

Global site tag (gtag.js) - Google Analytics