Maximo学习笔记------多表级联更新

刚接触Maximo也没多久,公司给安排了一个内部管理项目练手。
最近就碰到了一个小问题,当我在操作当前表时需要级联更新关联表中的字段,最后通过自己摸索勉强实现了该功能,虽然不知道是不是最简单的方法,但觉得还是分享出来比较好。

我是在MBO类保存方法中实现该功能:
MboSetRemote pre = MXServer.getMXServer().getMboSet("PRESALES",this.getUserInfo()); 
//通过关联获得关联表的MboSet集合
pre.setWhere(" PRESALESNUM = '" + this.getString("PRESALESNUM")+ "' and siteid = '" 
      + this.getString("SITEID") + "'");
      //设置where条件过滤MboSet
pre.reset();

MboRemote presales = pre.getMbo(0);
//这里根据实际情况而言,因为我自己的关联是多对一,所以过滤掉后的Mbo应只有一个
if (presales == null)
    throw new MXApplicationException("", "没有项目来源!~");
presales.setValue("REAL_COST", presales.getDouble("REAL_COST")+ totalamount, 11L);
//最后设置关联表中字段,设置后别忘记了保存关闭释放资源
pre.save();
pre.close();



从上面这个方法我又得到另外一个功能,获得目标表字段值更新当前字段,在此之前也实现了该功能,但那是建立在数据表有关联的基础之上。
以下我就举一个简单的例子,在新建一条记录时,自动插入当前登录人员所在部门,在查看UserInfo后了解到没有现成的方法实现该功能,所以参考上面提到的级联更新方法

    MboSetRemote per = MXServer.getMXServer().getMboSet("PERSON",this.getUserInfo());
    per.setWhere("PERSONID= '" + this.getString("APPLICANT") + "'");
    per.reset();
    MboRemote myself = per.getMbo(0);
    if (myself == null)
        throw new MXApplicationException("", "没有该人员!");
    setValue(ExpConstant.DEPARTMENT, myself.getString("DEPARTMENT"), 11L);
    per.close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值