11.8. OpenRules のバージョンによる記法の差異¶
IM-BIS と OpenRules をアップデートする場合、 OpenRules のバージョンによって追加・変更が発生する事項をまとめています。アップデートを行う際には、本項の内容に基づいて必要な対応を実施してください。なお、各項目の「利用できる OpenRules のバージョン」は、ユーザモジュールに含まれるバージョンに基づいて記載しているため、 OpenRules 本体で追加・変更されたバージョンと差異がある場合があります。コラム
本項の内容は OpenRules 本体の仕様に関する内容のため、以下のリンク先のリリースノートやユーザマニュアルで詳細を参照してください。
- OpenRules (公式サイト)
- OpenRules User Manual
テーブルタイプ¶
DecisionTable¶
キーワードで「DecisionTableSingleHit」が利用可能¶
以下の表で のある OpenRules のバージョンでは、 DecisionTable で「DecisionTableSingleHit」を利用できます。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.2.4 OpenRules 6.2.6 以降
列タイプ「OnOff」が利用可能¶
以下の表で のある OpenRules のバージョンでは、 DecisionTable の列タイプとして「OnOff」を利用できます。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.3.3 以前 OpenRules 6.4.2 以降
DecisionTable1¶
キーワードで「DecisionTableMultiHit」が利用可能¶
以下の表で のある OpenRules のバージョンでは、 DecisionTable1 で「DecisionTableMultiHit」を利用できます。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.2.4 OpenRules 6.2.6 以降
列タイプ「OnOff」が利用可能¶
以下の表で のある OpenRules のバージョンでは、 DecisionTable1 の列タイプとして「OnOff」を利用できます。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.3.3 以前 OpenRules 6.4.2 以降
DecisionTable2¶
列タイプ「OnOff」が利用可能¶
以下の表で のある OpenRules のバージョンでは、 DecisionTable2 の列タイプとして「OnOff」を利用できます。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.3.3 以前 OpenRules 6.4.2 以降
DecisionTableAssign¶
テーブルタイプ「DecisionTableAssign」が利用可能¶
以下の表で のある OpenRules のバージョンでは、テーブルタイプとして DecisionTableAssign が利用できます。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.3.3 以前 OpenRules 6.4.2 以降 コラム
OpenRules 6.4.2では、配列型のオブジェクトを扱う下記のテーブルタイプも追加されていますが、 IM-BIS との連携では利用できません。
- DecisionTableIterate
- DecisionTableSort
条件として利用できるキーワード¶
Condition¶
数値範囲の記載方法に[1..n]形式を追加¶
OpenRules 6.3.0では、数値範囲の表現方法で[5,15](5~15の範囲を表す)と同義の形式として[5..15]の形式でも記載できます。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.2.6 以前 OpenRules 6.3.0 以降
数値比較の演算子に「Outside / Outside Interval」を追加¶
OpenRules 6.3.2で提供された演算子「Outside / Outside Interval」が利用できます。詳細については該当のキーワードのリファレンスを参照してください。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.3.1 以前 OpenRules 6.3.3 以降
文字列比較の演算子として「Does Not Contain」が利用可能¶
OpenRules 6.3.3で修正された演算子「Does Not Contain」が利用できます。当該バージョンより前のバージョンで定義した場合、利用できません。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.3.1 以前 OpenRules 6.3.3 以降
数値比較の演算子として「Is One Of」「 Is Not One Of」が利用可能¶
OpenRules 6.4.0で修正された演算子「Is One Of」「Is Not One Of」が利用できます。当該バージョンより前のバージョンで定義した場合、利用できません。詳細については該当のキーワードのリファレンスを参照してください。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.3.3 以前 OpenRules 6.4.2 以降
ConditionIntOperInt¶
特定のデータ型の項目( Data/Variable )同士を比較するためのキーワードの追加¶
OpenRules 6.3.0では、特定のデータ型の項目同士を簡単に比較するためのキーワードとして、「 ConditionIntOperInt 」を追加しました。詳細については該当のキーワードのリファレンスを参照してください。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.2.6 以前 OpenRules 6.3.0 以降
ConditionRealOperReal¶
特定のデータ型の項目( Data/Variable )同士を比較するためのキーワードの追加¶
OpenRules 6.3.0では、特定のデータ型の項目同士を簡単に比較するためのキーワードとして、「 ConditionRealOperReal 」を追加しました。詳細については該当のキーワードのリファレンスを参照してください。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.2.6 以前 OpenRules 6.3.0 以降
ConditionDateOperDate¶
特定のデータ型の項目( Data/Variable )同士を比較するためのキーワードの追加¶
OpenRules 6.3.0では、特定のデータ型の項目同士を簡単に比較するためのキーワードとして、「 ConditionDateOperDate 」を追加しました。詳細については該当のキーワードのリファレンスを参照してください。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.2.6 以前 OpenRules 6.3.0 以降
結果・処理として利用できるキーワード¶
Conclusion¶
式の記述時の()の扱いが変更¶
OpenRules 6.3.0では、::=で始まる式を Conclusion などと組み合わせて記載する場合、式を()で囲わなくてもよい形に変更になりました。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.2.6 以前 OpenRules 6.3.0 以降
日付クラス( com.openrules.tools.Dates )の追加¶
OpenRules 6.4.0で日付型項目を扱うためのクラスが追加されました。このクラスには日数計算などのメソッドが含まれています。詳細については以下のリファレンスを参照してください。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.3.3 以前 OpenRules 6.4.2 以降
ActionExecute¶
Decision からの Sub-Decision( Decision)、DecisionTable の呼び出し方法の変更¶
OpenRules 6.2.6では、 Decision からの呼び出し方法が変更されました。OpenRules 6.2.6以降のバージョンの環境で、OpenRules 6.2.4以前に対応した記述でのルールを実行すると、シンタックスエラーが発生します。
OpenRules 6.2.4以前での記述方法
OpenRules 6.2.6以降での記述方法
特殊なキーワード / テーブルタイプ固有のキーワード¶
現時点では、差異はありません。
Methodで利用できるキーワード(API)¶
全般¶
すべてのget/set/compareメソッドの呼び出し変更、getメソッドの代替マクロの追加¶
すべてのget/set/compareメソッドについて、実行されるメソッドがExcelファイル(DecisionTemplates.xls、DecisionTableExecuteTemplates.xls)からJavaに移行されたことに伴い、呼び出し方法の書き方が変わります。また、getメソッドの代替の記述方法としてマクロが追加されました。
OpenRules 6.2.6以前での記述方法
OpenRules 6.3.0以降での記述方法
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.2.6 以前 OpenRules 6.3.0 以降 追加されたマクロ($始まりでget()を実行する表現形式)
Method からの Decision インスタンスに含まれるパラメータへのアクセス方法の変更¶
OpenRules 6.3.0では、この Decision インスタンスへのアクセス方法の記述が変更されました。OpenRules 6.2.6以前での記述方法を利用している場合、複数のスレッドで同時にルールを実行する際に正しく対象のインスタンスにアクセスできないなどの問題がありますので、注意してください。
BigDecimal、longに対するマクロを追加¶
OpenRules 6.3.4からBigDecimal、 6.4.1からlongのデータ型に対するgetメソッドのマクロが提供されました。ただし、 IM-BIS が対応していないため、 IM-BIS との連携では利用できません。
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.3.3 以前 OpenRules 6.4.2 以降
配列に対する反復処理、ソート処理に関するメソッドを追加¶
OpenRules 6.4.2から配列に対する反復処理、ソート処理を行うためのメソッドが提供されました。ただし、 IM-BIS が対応していないため、 IM-BIS との連携では利用できません。
- iterate(String arrayName, String rules)
- iterate(String arrayName, String arrayType, String rules)
- sort(String arrayName)
- sort(String arrayName, String rules)
- sort(ComparableDecisionVariable[] array)
- sort(ComparableDecisionVariable[] array, String rules)
利用できる OpenRules のバージョン
OpenRules 利用可否 OpenRules 6.3.3 以前 OpenRules 6.4.2 以降