【規則引擎連載7】 WebSphere ILOG JRules 開發——BOM更新

引言

    通常根據需求的變更,接口文檔的調整,業務對象模型需要有部分一些新增,刪除或者修改等操作。那麼此時需要首先更新業務對象的Java項目,然後重新打出jar包,覆蓋原有的jar包,然後bom更新。同時還要BOM更新時的一些問題的處理。
示例:屬性改名:cooperateName 改爲 cooperateCode 

 一、java項目中修改該屬性,並根據需求添加get和set方法。


二、保存之後導出爲jar包

    之前有介紹,這裏不做贅述

三、將導出的jar包覆蓋項目的xom文件夾下原有的jar包

此時會出現報錯信息,報錯原因爲XOM與BOM不同步,一般在BOM更新之後,便不會有報錯了,但特殊情況下可能任然存在報錯情況,此時需要根據報錯信息而定。


四、bom更新

4.1 bom文件夾下“模型“ 右鍵 “BOM更新”

4.2 BOM更新視圖下,提示“檢測到 XOM和BOM類之間的區別”,“區別和操作”輸入框中有內容可選。點開可輸入下拉框,其中有“刪除BOM屬性cooperateName”和“不建議使用屬性cooperateName” 的選項 。

4.3 在“區別和操作 ”下,點擊“執行和保存”按鈕,進行更新。
4.4 對於新增的屬性,回彈出如下提示框,用語言描述BOM,勾選全選,並點擊完成

4.5  如果有多處改變,則需要執行多次BOM更新,即點擊多次“執行和保存”按鈕,直到BOM更新視圖提示“未檢測到XOM和BOM類之間的區別”,此時,“區別和操作”輸入框中無內容可選。
4.6 更新完成之後,依然會出現項目報錯的情況,打開項目,可看到“cooperateName”與“cooperateCode”兩個屬性 都有,且“cooperateName”報錯。
五、BOM更新出現的問題已經解決方案
報錯原因:下拉框中的選項,“不建議使用BOM屬性cooperateName”在前,“刪除BOM屬性cooperateName”在後。如果是按照默認的順序,依次執行和保存,則會在執行“不建議使用BOM屬性cooperateName”完成時,代碼中會增加一段代碼( deprecated "true"),該段代碼的意思是該屬性已棄用。但不會刪除該屬性。
此時“刪除BOM屬性cooperateName”的選項會根據系統的自動構建而消失。所以屬性“cooperateName”在BOM中依然存在,而在XOM中已經不存在了,所以報錯。
解決方法:
(一)、在執行BOM更新時,優先執行“刪除BOM屬性cooperateName”;
(二)、在執行完成後,打開該屬性“cooperateName”所在的類,在“成員”中找到該屬性,選中後,點擊右側的刪除按鈕,保存即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章