Запуск события рабочего процесса Maximo из кода

В нашем рабочем процессе Maximo есть несколько схем, в которых рабочее задание достигает узла условия с проверкой даты начала. Если текущая дата меньше даты начала, то заказ на работу переходит на узел ожидания с условием «maximo.workorder.update». Поэтому, когда наступает запланированная дата для WO, людям нужно перейти к отслеживанию WO и сохранить этот WO вручную. Только после этого он продолжает свой путь через рабочий процесс. В противном случае WO будет сидеть на этом узле ожидания до конца времени.

Что я хочу сделать, так это запускать это событие обновления с помощью crontsk каждый день, чтобы, когда наступит подходящая дата, WO проснулся сам по себе.

Я проверил исходный код кнопки «Сохранить» в приложении отслеживания WO и обнаружил, что независимо от того, что есть вызов метода MboRemoteSet.save(). Я предположил, что вам нужно внести некоторые изменения, а затем вызвать save() для правильного MboSet. Также я знаю, что в БД есть таблица EVENTRESPONSE, которая отслеживает WO, сидящие на узлах ожидания в рабочем процессе. Мой класс crontsk содержит этот код:

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?


person Moonsera    schedule 22.04.2013    source источник


Ответы (1)


Я понимаю, что этот ответ приходит с опозданием на год, но он может помочь другим.

Можно использовать «Эскалацию», чтобы идентифицировать все заказы на работу, у которых было время прийти, и использовать действие при эскалации, чтобы обновить что-либо в заказе на работу. Это приведет к тому, что Maximo сохранит изменение, тем самым запустив узел ожидания рабочего процесса, и все это без какого-либо кода, только конфигурации.

Я делал что-то подобное в прошлом, и обычно я переворачиваю поле YORN, которое я создал для этой цели.

person Dex    schedule 23.05.2014