2017-06-23 3 views
0

kie-server 7.0とkie-java-client 7.0を使用しています。 私は作業台に単純なルールを書かれている: -ルールで変更されたDrools kie Javaクライアントオブジェクト

rule "Hello World" 
when 
    a:CartDetails(minPurchaseAmt==10000) 
then 
    a.setMinPurchaseAmt(20.0f); 
    System.out.println("Test rule executed success"); 
end 

これは私のクライアントコードである: -

Command<?> insert = commandsFactory.newInsert(fact,  "CartDetails",true,"DEFAULT"); 
Command<?> fireAllRules = commandsFactory.newFireAllRules(); 
Command<?> factObjects = commandsFactory.newGetObjects(); 
Command<?> batchCommand = commandsFactory.newBatchExecution(Arrays.asList(insert,fireAllRules,factObjects)); 
ServiceResponse<ExecutionResults> executeResponse = rulesClient.executeCommandsWithResults("couponengine_1.0", batchCommand); 

イム応答で、「SUCCESS」ではなく更新されたオブジェクトを取得。 (私がsetMinPurchaseAmt()を呼び出す時には、 'then'の部分にある)

もっと入力が必要かどうかを教えてください。

答えて

0

あなたは、droolsエンジンに事実の値を更新するように指示する更新機能を使用する必要があります。ルールの一部にupdate(a)を追加します。このアプローチを試してみて、結果を共有してください。

+0

修正プログラムが見つかりました。この問題はルールの一部ではありません。それはモデルです。ルールサーバーで定義したモデル(クライアントオブジェクト)と、クライアントから送信しているモデル(日付オブジェクト)が一致しません。だからルールが解雇されないのです。 –

関連する問題