1

在我们的 Maximo 工作流程中,我们有一些模式,其中工作订单到达条件节点并检查开始日期。如果当前日期小于它的开始日期,则工作订单将转到具有“maximo.workorder.update”条件的等待节点。因此,当 WO 的预定日期到来时,人们需要去 WO 跟踪并手动保存此 WO。只有这样它才能继续通过工作流程。否则,WO 将一直坐在那个等待节点上,直到时间结束。

我想要做的是每天通过 crontask 触发这个更新事件,这样当正确的日期到来时,WO 会自行唤醒。

我检查了 WO 跟踪应用程序中保存按钮的源代码,发现无论有什么 MboRemoteSet.save() 方法调用。我假设您需要完成一些更改,然后在正确的 MboSet 上调用 save()。我还知道在 DB 中有一个名为 EVENTRESPONSE 的表,它跟踪工作流中等待节点上的 WO。我的 crontask 类包含以下代码:

MXServer mxServer = MXServer.getMXServer();
UserInfo userInfo = mxServer.getUserInfo("maxadmin");
woSet = mxServer.getMboSet("WORKORDER", userInfo);
...
String query = "select sourceid as WORKORDERID from EVENTRESPONSE"
                + " where eventname = 'maximo.workorder.update'"
                + " and sourcetable = 'WORKORDER'";
SqlFormat sqf = new SqlFormat("workorderid IN (" + query + ")");
woSet.setWhere(sqf.format());
MboRemote wo;
Date currentDate = new Date();
for (int i = 0; (wo = woSet.getMbo(i)) != null; i++) {
    System.err.println(wo.getString("description"));
    wo.setValue("CHANGEDATE", currentDate);
}
woSet.save();

workorder.changedate 成功刷新,但“maximo.workorder.update”事件没有触发,WO 停留在等待节点上。

那么,我应该如何触发 maximo.workorder.update 呢?

4

1 回答 1

2

我理解,这个回复晚了一年,但它可能对其他人有所帮助。

可以使用“升级”来识别所有有时间到来的工作订单,并使用升级操作来更新工作订单上的某些内容。这将导致 Maximo 保存更改,从而触发工作流的等待节点,无需任何代码,只需配置。

我过去做过类似的事情,通常我最终会翻转我为此目的创建的 YORN 字段。

于 2014-05-23T14:57:03.627 回答