2016-10-24 1 views
0

Anywhere는 거래를 그룹화하고 순서화하여 부모 거래 (즉, 작업 주문)가 먼저 전송 된 다음 하위 레코드 거래 [예 : ]Anywhere는 거래 순서를 재 순서화합니다

시나리오 : 1 단계와 3 단계는 다음과 같다 1 단계 알터 2. 사양 3 단계 변경 값 입력 단계 WO상의 설명 상태 WO

결과 트랜잭션 전송을 COMP하기 그룹화하여 Maximo에 보냄 성공시우리는 아이가있는 경우 확인 :3210 2 단계 우리는 메시지가 일어난 것과 같은 순서로 전송하고, 그 이유는 우리가 MAXIMO

등의 장소에있는 검증입니다 원하는 MAXIMO

로 전송됩니다 우리가 완료하기 전에 테이블에 레코드가있는 경우 [우리의 경우, 사양이 채워 졌는지 확인] WO

이벤트 재주문으로 인해 거래가 디바이스에서 자식 트랜잭션 자식 데이터 누락으로 인해 부모 트랜잭션이 실패하기 때문에 Maximo에 도달하지 못함 [catch 22]

우리는이 재정렬을 수행하는 [/MaximoAnywhere/apps/WorkExecution/common/js/platform/model/PushingCoordinatorService.js] JS 파일의 코드 조각을 발견하고 우리는 재정렬

//if (!transaction.json[PlatformConstants.TRANSACTION_LOCK_FORUPDATE]) 
//{ 
// Logger.trace("[PUSHING] Trying to shrink/merge transactions and lock transactions"); 
// var self = this; 
// var promise = this._shrinkSubTransactions(metadata, transaction); 
//  
// Logger.trace("[PUSHING] going to perform async operations"); 
// promise.then(function() { 
//  self._pushSubTransactions(transaction, deferred); 
// }); 
//} 
//else 
//{ 
    Logger.trace("[PUSHING] going to perform async operations"); 
    this._pushSubTransactions(transaction, deferred); 
//} 

에서 주석 이 작업이 완료되면 우리는 이벤트/트랜잭션이 발생한 순서와 동일한 순서로 보내 지므로 장치에서 WO를 COMP 할 수 있습니다.

그러나이 문제로 인해 다른 오류가 발생하는 것으로 나타났습니다. 기기가 오류가있는 작업 주문과 Maximo에서 다시 가져온 작업 주문으로 끝납니다.

시나리오 : WO에서 실행중인 활성 타이머와 시계를 클릭합니다. 그러면 타이머보기가 멈추고 [작업 완료]를 선택합니다.

두 가지 일이 발생하므로 타이머를 중지하고 상태를 변경해야합니다. Maximo의 유효성 검증 오류로 인해이 트랜잭션이 실패합니다. 결과적으로 새로운 상태와 오류 메시지가있는 두 번째 동일한 주문과 Maximo에서 다시 가져 오는 오류 메시지가 하나가됩니다.

일단 오류가있는 레코드로 가서 변경 사항을 취소하면

외에도 위의 문제에서 장치에 두 개의 동일한 WOS로, (응용 프로그램

답변

0

당신은 어떤 Model.save를 넣어 시도 할 수 삭제하지 않고 장치에서 로컬 데이터를 삭제하는 방법이있을 필요가있다) 또는 app.xml에서보기를 표시하거나 숨길 때 저장을 강제 실행할 수 있습니다.

세이브가 없으면 모든 것이 하나의 변화로 바뀌 었다고 생각합니다. 하나의 메시지로 보내졌고, 어떻게 패닉을 당하지 않을지에 대한 통제권을 잃게됩니다.