2016-08-10 9 views
-1

だから私は既に.drlファイルで作成したルールからデシジョンテーブルを作成してみたいと思っていました。その後私はそれを.drlに戻したいと思っていました。 drlからxls/csvへのすばらしい変換は見られませんでした。また、jbossのドキュメントも十分に包括的でした。ルールは単純な決定表にとっては複雑すぎるかもしれないが、私はこのコミュニティが私を助けてくれることを望んでいた。ここでDroolデシジョンテーブルの作成

はDRLです:

rule "Patient: Compute BMI" 
    when   
    $basic : BasicInfoModel(
     notPresent('bmi'), 
     isPresent('height'), 
     isPresent('weight'), 
     $height : value('height', 0.0), 
     $weight : value('weight', 0.0)) 
    then 
    modify($basic){ 
     put('bmi', $weight/Math.pow($height,2)) 
    }; 
end 

だから、このルールは、基本的には、オブジェクトの重さと高さフィールドを見て、その後、BMIを計算します。私は基本的に私が持っているものを取ってそれをデシジョン・テーブル・フォーマットに入れてみましたが、ほとんど成功しませんでした。何も実際には解析されません(私はdroolsSpreadSheet.compileを使用しています。空のルール全体です)。どんな助けもありがとう!

更新:

package DROOLS; 
//generated from Decision Table 
import basic.BasicInfoModel; 
// rule values at A11, header at A6 
rule "Computing BMI" 
    when 
     $patient:BasicInfoModel(notPresent('bmi'), isPresent('height'),isPresent('weight'), $height:value('height', 0.0), $weight:value('weight',0.0) == "20,4") 
    then 
end 

更新#2: This is what my excel sheet looks like これは私のルールを解析し何で私は私の解析の問題を考え出したと思います。 Here is my new and improved spreadsheet.、基本的に私はコンピューティングBMIを持つことができないことを発見しました。データが空白です。ルールの解析を行うためにそこに何かが存在しているに違いありません(読んだ文書では完全にはっきりしません。デシジョン・テーブルは初心者です)。

は、だから今、コンパイルがより多くの私が欲しいもののようになります。

// rule values at A11, header at A6 
rule "Computing BMI" 
    when 
     $patient:BasicInfoModel(notPresent('bmi'), isPresent('height'), isPresent('weight') == "TRUE") 
     $weight:value('weight',0.0), $height:value('height', 0.0) 
    then 
     modify($patient){put('bmi', $weight/Math.pow($height,2))}; 
end 

誰かが、私は彼らが解析するためには、ルールでは実際の、具体的なデータを持っている必要があることを確認することはできますか?私はちょうど注射を他の場所で使うことができますか?おそらく、私はこれについて新しい質問をするべきです。

+0

DRLからコンパイルして実行するとき、このルールは正しく動作しますか? – laune

+0

はい!したがって、さまざまなメソッドの束を持つオブジェクトがあります。そのうちの1つは、正しいキー、値のペアを内部に配置するハッシュマップです。 – Kevin

+0

OK、これらの制約をデシジョン・テーブル・フォーマットに適合させようとしている間におそらく間違いました。あなたはcsvとしてxlsをエクスポートし、あなたの質問に編集することができます。 - しかし、私はどのように値を変更することができないので、異なるルールが作成されるので、意思決定表からどのように利益を上げるか分かりません。 – laune

答えて

0

答えは「はい」ですが、パラメータが必要ですが、私が知りませんでしたのは、すべての例のようにデータをハードコードする必要がないということでした。 this answerにつまずくことに感謝します。だから、テーブルはthisのようになります。私はこれがこの問題に遭遇した人たちを助けることを願っています。また、私が推奨するのは、スプレッドシートを通過するのではなく、.drlファイルであなたのdroolsを作成することです。とにかくそれは私の2セントです。

+0

「決定表」を研究する。彼らはルール編集車ではありません。 – laune

+0

私はルールを編集しようとしていないので、単にルールを作成しようとしています。しかし、1つのルールを作成する方が、デシジョン・テーブルではなく.drlファイルに書き込むほうが簡単です。それは多くの意味があります。 – Kevin

関連する問題