問題タブ [guvnor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
drools - ルールの例外実行結果 (Drools、Guvnor、JBPM5)
JBPM5.4インストーラーを使用して、BPMを初めて使用しています。
以下は、Guvnor から取得した私の drl ソース コードです。ルールを起動すると、エラーが発生します。
スタックトレース:
drools - Drools Guvnor によるルール開発とデプロイメント管理
序章
Drools Guvnor には独自のバージョン管理システムがあり、実稼働環境ではアプリケーションのユーザーがビジネスの変化に適応するためにルールと意思決定表を変更できます。それでも、アプリの新機能が開発される開発バージョン管理システムには、同じアセットが引き続き存在します。
この投稿は、Drools ルールと Guvnor を使用する際のルール開発とデプロイに関する洞察/アイデア/経験を探すためのものです。
以下は、私が困惑してきたいくつかの重要な概念です。
Guvnor への展開
まず第一に、drl ファイルとデシジョン テーブルを本番環境に展開する最良の方法は何ですか? それらをzipパッケージに入れてから、Web-Davフォルダーに解凍するだけですか?Drools について調べてみましたが、一度に複数のファイルをインポートする方法が見つかりませんでした。ただし、ファクト モデルは jar アーカイブとして追加できます。Guvnor にはある種の REST API があるようですが、それを使用するにはカスタムのデプロイ スクリプトが必要です。
変更管理
第 2 に、アプリケーションが本番環境に入ると、ユーザーは、プレミアム クライアントなどの割引率を高く設定するために、デシジョン テーブルの値を変更する可能性があります。アプリのバージョン 2.0。
この時点で私たちが持っているのは
- バージョン管理システムの drl ファイルとデシジョン テーブル
- Guvnor によってバージョン管理された、ユーザーが変更した実稼働環境の drl ファイルとデシジョン テーブル
これで、Guvnor からルールとデシジョン テーブルを取得するところまで来ました。また、これには Web-Dav フォルダーが最適ですが、他にどのようなオプションがありますか?
今日のマージ ツールは、Excel ファイルの差分も処理できますが、大規模なプロジェクトではマージ地獄のように思えます。
ファクト モデルの下位互換性を維持する
もう 1 つのトピックは、ファクト モデルの完全性です。想定されるバージョン 2.0 の場合、開発者は常にリファクタリングを行い、ファクト モデル全体を逆さまにしたいと考えています。それでも、以前のバージョンに依存するユーザーが変更したルールが存在する可能性があるため、以前のバージョンとの下位互換性を維持する必要があります。これに関するヒントはありますか?ファクト モデルをシンプルかつクリーンに保ちますか? 事前に計画し、ユーザーが何を変更したいかを提案しますか?
概要
Drools と Guvnor を使用した展開と変更管理のオプションを検討したのは、私が初めてではなく、最後でもありません。したがって、私が聞きたいのは、これらの状況を処理するための最良の (そしてそれらを回避するための最悪の) プラクティスに関するコメント、ディスカッション、ヒントなどです。
ありがとう。
drools - guvnor Web デシジョンテーブルで同等性を確認するには?
Drools セッションに挿入する 2 つの事実があります。以下を確認したい。
(shipment1 != null && shipping1.shipToCustomerNo == waypoint1.shipToNumber) || shipping1 == null
この条件を guvnor Web ベースのデシジョン テーブルに追加するにはどうすればよいですか? 述語を使用してみましたが、waypoint1 と shipping1 はバインドされた変数であり、セッションに正常に挿入されています。述語を使用して上記のものを追加すると、テスト ケースは正常に機能しますが、実際に Java アプリでこれらのルールを実行すると、データが同等であっても条件が true と評価されることはありません。このクエリを構築するために、さまざまな方法を試しました。以下は、生成されたソースです。
drools - Drools デシジョン テーブル - 1 列 - 2 フィールド
メインとセカンダリの 1 つ以上のコードに関連するクラスがあるとします。このクラスのすべてのオブジェクトには、少なくともメイン コードがあり、無制限の数のセカンダリ コードを持つことができます。
Drools デシジョン テーブルで、列に指定された値が mainCode と等しいか、または secondaryCodes に含まれているかを確認できるルールを作成したいと考えています。したがって、2 つの異なるフィールドに関連する 2 つのルールに対して 1 つの列が必要です。
それは可能ですか?
tomcat - kie-wb-distribution-wars-6.0.1.Final-tomcat7 のデプロイに関する問題
kie-wb-distribution-wars-6.0.1.Final-tomcat7 のデプロイに問題があります。Michael Anstis のガイド (README) に従いましたが、アプリケーションでいくつか問題が発生しました。
ログを添付します。
お手数をおかけして申し訳ありませんが、私は夢中になります。
drools - kie ワークベンチで guvnor を変更する方法
質問があります。私はguvnor 5.2の修正版を持っています(私が)。Kie-wb の実際のバージョンの guvnor を私のものに置き換えます。私はこれを行うことができますか?最終的に、guvnor のファイルを変更できるフォルダーができました。kie プロジェクトに guvnor フォルダーが見つかりません。それ以外の場合、メニューを変更して既存の kie に機能を追加するにはどうすればよいですか?
悪い英語でごめんなさい:)
java - StatelessKnowledgeSession フォーカス アジェンダ
drools でのルールの実行に問題があります。StatefulKnowledgeSession でルールを実行しても問題はありません。
しかし、マルチスレッド プロセスであるため、StatelessKnowledgeSession で同じルールを実行しようとしましたが、アジェンダ グループに焦点を当てることができず、結果が異なります。
My KnowledgeBase は実行中に変更されません。
どうすればこれを行うことができますか?
ありがとう!!