Maximo 워크 플로우에는 작업 순서가 시작 조건 점검과 함께 조건 노드에 도달하는 몇 가지 스키마가 있습니다. 현재 날짜가 시작일보다 작 으면 작업 주문은 "maximo.workorder.update"조건이있는 대기 노드로 이동합니다. 따라서 WO의 예정 날짜가되면 사람들이 WO로 이동하여 WO를 수동으로 추적하고 저장해야합니다. 그래야만 작업 흐름을 계속 진행할 수 있습니다. 그렇지 않으면 WO는 시간이 끝날 때까지 대기 노드에 위치합니다.코드에서 Maximo 워크 플로우 이벤트 발사
내가하고 싶은 일은 crontask에 의해 매일이 업데이트 이벤트를 트리거하는 것이므로 올바른 날짜가되면 WO가 자체적으로 깨어납니다.
WO 추적 프로그램의 저장 버튼에 대한 소스 코드를 검사했는데 MboRemoteSet.save() 메소드 호출이 무엇이든 상관없이 발견했습니다. 몇 가지 변경 작업을 한 다음 올바른 MboSet에서 save()를 호출해야한다고 가정했습니다. 또한 DB에서 워크 플로우의 Wait 노드에있는 WO를 추적하는 EVENTRESPONSE라는 테이블이 있다는 것을 알고 있습니다. 내 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"이벤트는 PROC하지 않고 대기 노드에서 숙박 WO.
그럼 어떻게 maximo.workorder.update를 실행해야합니까?