為什麼我建置的 Model 沒辦法被起動?
記得我剛開始在開發 RosettaNet 的時候,時常發生一個問題,就是當我收到一份 Document 的時候,我的 Model 卻沒有跑,然後,我檢查 Lo g的時候,看到 Log 的訊息是 “*** MODEL IS INACTIVE ***” “cannot create new instance of P54FJNQEBNZJ”,當時我第一個想法就是我的 Model 可能設錯了,於是我將原有的 Model 給刪除,然後再重新 Create 一個新的,但仍無法解決我的問題,還是一樣發生同樣的事情,其實後來才發現這個問題不難解決,只是一個簡單的設定而已。
那麼為什麼會發生上面的訊息呢?你可以進你的 Developer 的環境去執行 “wm.prt.debug:getModelIndex” 你就會發現到,你有部份的 Model 是重覆,但是狀態卻是 “INACTIVE” ,這個原因並不是一個 “Error” ,只代表你這一個 Model 被你從 Monitor Delete 而已。但當你接收到一份 Documents 的時候,原本被你刪除的 Model 剛好附合被趨動的條件,但這一個 Model 卻是被 Inactive ,所以才會出現 “*** MODEL IS INACTIVE ***” 的訊息。至於我真正要被趨動的 Model 為什麼沒有被趨動呢?其設定更改如下就可以了!
當你會發生這個原因,大部份是你的 Model 附合以下的條件:
1. 你的 RN 是屬於 Receiver 端,所以你等待的是一份外部的 Document 。
2. 這一個 Model 是拿原始的 Model 來更改的
3. 你在 TN Console 中的 Transaction 看得到此筆 Transaction ( Document )
若你附合以上的條件,那麼請您就做以下的操作:
1. 打開你的 Model ,並且打開第一個Step(Wait for……)的 Properties 。
2. 在 Properties 中會看到 “Join Type” 的內容是 “Complex” ,請你把該選項下拉後,再選一次。
3. 你會看到類似下面的畫面,在 “Transition/Subscriptions” 重新選擇你所要 Wait 的 Document。
4. 存檔後,重新產生即可。
就依據上面的幾個動作就可以囉!
1 則留言:
hi, you write a useful and wonderful blog...^^
張貼留言