2013-04-22 1 views
1

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를 실행해야합니까?

답변

2

이 응답은 1 년 늦었지만 다른 사람들에게 도움이 될 수 있습니다.

"에스컬레이션"을 사용하여 올 시간이 왔던 모든 작업 지시를 식별하고 작업 지시에서 무언가를 업데이트하기 위해 작업을 에스컬레이션에 사용할 수 있습니다. 이렇게하면 Maximo가 변경 사항을 저장함으로써 워크 플로의 대기 노드를 트리거 할 수 있습니다. 모든 코드없이 구성 만 가능합니다.

나는 과거와 비슷한 일을 해왔으며, 보통이 목적을 위해 만든 YORN 필드를 뒤집어 쓰게됩니다.

관련 문제