2. ルールの実行時にエラーが発生する、正しく動作しない¶
ルールの実行で発生するエラー
- DecisionTable で利用している項目が Glossary に存在しない
2.1. DecisionTable で利用している項目が Glossary に存在しない¶
2.1.1. 現象¶
2.1.2. 条件¶
bis.logやコンソールに下記のようなスタックトレースが出力されている。
[2015-03-23 21:10:15.028] ERROR - [resin-port-8080-99] - [default] - [bis.common.user_program.soa_executor] SOAを実行している最中に例外が発生しました。システム管理者に問い合わせてください。 [2015-03-23 21:17:32.762] ERROR - [resin-port-8080-200] - [default] - [jp.co.intra_mart.system.bis.soa.connector.rule.RuleConnector] ルールを実行している際にエラーが発生しました。 ERROR in Glossary: cannot find element 'テスト値1' org.openl.binding.OpenLRuntimeException: ERROR in Glossary: cannot find element 'テスト値1' ・・・ Caused by: org.apache.commons.lang.exception.NestableRuntimeException: ERROR in Glossary: cannot find element 'テスト値1' ・・・ [2015-03-23 21:17:32.889] ERROR - [resin-port-8080-200] - [default] - [bis.common.user_program.soa_executor] SOAを実行している最中に例外が発生しました。システム管理者に問い合わせてください。
2.1.3. 原因¶
Excelファイル内に下記の定義誤りが存在する場合に発生します。
- DecisionTable で Condition や Conclusion などに使用している項目が Glossary に定義されていない、または、項目名が間違っている。
2.1.4. 解決方法¶
スタックトレース中に、定義されていない項目名が出ていますので、その項目名と Glossary の定義を照らし合わせてください。上のスタックトレースの場合の読み方は、次のようになります。下記の読み方に基づいて、Excelの定義ファイルを修正し、再度データソース定義にアップロードしてください。
ERROR in Glossary: cannot find element ‘対象の項目名’
- DecisionTable で’対象の項目名’ が Glossary で見つけられないことを表しています。