maximo跟java_Maximo7.5远程调用maximo的手动输入节点工作流

最近一个项目是在移动端做maximo系统的待办处理,对于普通的工作流节点使用mbo远程调用的方式基本都没有问题,很容易都可以处理了。可是有几个工作流程由于使用了输入节点,调用方式就发生了改变,经过反编译、跟踪、详细查看代码等一系列环节,最终终于解决了问题,其实也很简单---结果就是顺序调用两遍!

如图:maximo 7.5工作流设计器中的输入节点

8c06f9a9926961297920b139781331fa.png

其实我们在获取到运行值长那个节点的assignment后,有两个action,一个就是转到输入节点的,另一个是交工作负责人执行。

贴出部分代码如下:

首先远程连接maximo rmi服务,如果在maximo内部,这一步就省略了。MXSession mxsession = MXSession.getSession();

mxsession.setHost("IP地址:13571/MXMUI7001");

mxsession.setUserName(“yonghuming”);

mxsession.setPassword(“mima”);

mxsession.connect();

获取到工作流待办节点信息:其中assignID=数字,这个自己根据需要最终能够获得WFInstance即可,不一定非要按照这个获取。UserInfo userInfo = mxsession.getUserInfo();

WorkFlowServiceRemote workFlowServiceRemote = (WorkFlowServiceRemote)mxsession.lookup("WORKFLOW");

MboSetRemote mboSetRemote = workFlowServiceRemote.getMboSet("WFASSIGNMENT", userInfo);

mboSetRemote.setWhere("assignID='4908342'");

WFAssignmentRemote assignment = (WFAssignmentRemote)mboSetRemote.getMbo(0);

WFInstanceRemote instance = assignment.getWFInstance();instance.completeWorkflowAssignment(assignID, 值长节点的actionID, "yes");

instance.completeWorkflowAssignment(assignID, 手动输入节点的actionID, "");

重点就是获取那两个actionID,可以用instance获取子action的mbo,然后通过action的mbo获取到actionID,例如:WFActionSetRemote wfasr=instance.getActions();

System.out.println(wfasr.count());

WFActionRemote action=(WFActionRemote) wfasr.getMbo(0);

System.out.println(action.getString("actionid"));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值