第58章 ガイド付きルールテンプレートの作成


ガイド付きルールテンプレートを使用して、データテーブルに定義した値に対応するプレースホルダー値 (テンプレートキー) を持つルール構造を定義できます。ガイド付きルールテンプレートは、構造が同じ多数のガイド付きルールセットを個別に定義するのに利用できる効率的な方法です。

手順

  1. Business Central で、Menu Design Projects に移動して、プロジェクト名をクリックします。
  2. Add Asset Guided Rule Template をクリックします。
  3. 参考となる ガイド付きルールテンプレート 名を入力し、適切な パッケージ を選択します。指定するパッケージは、必要なデータオブジェクトが割り当てられている、またはこれから割り当てるパッケージにする必要があります。
  4. OK をクリックして、ルールテンプレートを作成します。

    新しいガイド付きルールテンプレートが、Project ExplorerGuided Rule Templates パネルに追加されます。

  5. Data Objects タブをクリックして、ルールに必要なデータオブジェクトがすべてリストされていることを確認します。リストされていない場合は、New item をクリックして、他のパッケージからデータオブジェクトをインポートするか、パッケージに データオブジェクトを作成 します。
  6. データオブジェクトをすべて配置したら、Model タブに戻り、ウィンドウの右側のボタンから、利用可能なデータオブジェクトに、ルールテンプレートの WHEN (条件) セクションおよび THEN (アクション) セクションを追加して定義します。ルールごとに変更するフィールド値については、ルールデザイナーで $key 形式、または (DRL を使用している場合は) free form DRL の @{key} 形式のテンプレートキーを使用します。

    図58.1 ガイド付きルールテンプレートの例

    ガイド付きルールテンプレートの例
    テンプレートキーに関する注記

    テンプレートキーは、ガイド付きルールテンプレートの基本となるものです。テンプレートキーは、同じテンプレートから異なるルールを生成するために、対応するデータテーブルで定義する実際の値と入れ替えるテンプレートのフィールド値を有効にするものです。リテラル などの値を使用することもできますが、その値は、そのテンプレートに基づいたすべてのルールのルール構造の一部となります。ただし、ルール間で異なる値については、特定のキーを使用した テンプレートキー フィールドタイプを使用します。ガイド付きルールテンプレートでテンプレートキーを使用しない場合、対応するデータテーブルはテンプレートデザイナーに生成されず、テンプレートは、個々のガイド付きルールとして機能します。

    ルールテンプレートの WHEN 部分は、アクションを実行するのに必要な条件が含まれます。たとえば、電話会社が、顧客が契約したサービス内容 (インターネット、電話、およびテレビ番組) に基づいて利用代金を請求する場合、WHEN 条件の 1 つは internetService | equal to | $hasInternetService となります。テンプレートキー $hasInternetService は、そのテンプレートのデータテーブルに定義した実際のブール値 (true または false) に置き換えられます。

    ルールテンプレートの THEN 部分には、ルールの条件部分に一致したときに実行するアクションが含まれます。たとえば、顧客がインターネットサービスだけを契約した場合は、RecurringPayment$amount テンプレートキーを使用した THEN アクションに、データテーブルのインターネットサービス料金に定義した整数値が実際の月額に設定されます。

  7. ルールのコンポーネントをすべて定義したら、ガイド付きルールテンプレートデザイナーで Save をクリックして、設定した内容を保存します。

58.1. ガイド付きルールテンプレートへの WHEN 条件の追加

ルールの WHEN 部分は、アクションを実行するのに必要な条件が含まれます。たとえば、電話会社が、顧客が契約したサービス内容 (インターネット、電話、およびテレビ番組) に基づいて利用代金を請求する場合、WHEN 条件の 1 つは internetService | equal to | $hasInternetService となります。テンプレートキー $hasInternetService は、そのテンプレートのデータテーブルに定義した実際のブール値 (true または false) に置き換えられます。

前提条件

  • ルールに必要なデータオブジェクトがすべて作成、またはインポートされていて、ガイド付きルールテンプレートデザイナーの Data Objects タブにリストされている。

手順

  1. ガイド付きルールテンプレートデザイナーで、WHEN セクションの右側のプラスアイコン ( 5686 ) をクリックします。

    利用可能な条件要素が追加された Add a condition to the rule ウィンドウが開きます。

    図58.2 ルールへの条件の追加

    ルールへの条件の追加

    このリストには、ガイド付きルールテンプレートデザイナーの Data Objects タブのデータオブジェクトと、パッケージに定義した DSL オブジェクトと、以下の標準オプションが含まれます。

    • The following does not exist: 存在すべきでないファクトと制約を指定します。
    • The following exists: 存在すべきファクトと制約を指定します。このオプションは、最初に一致したものだけが適用され、その後一致するものは無視されます。
    • Any of the following are true: true であるファクトと制約をリストします。
    • From: ルールの From 条件要素を定義します。
    • From Accumulate: ルールの Accumulate 条件要素を定義します。
    • From Collect: ルールの Collect 条件要素を定義します。
    • From Entry Point: パターンの Entry Point を定義します。
    • Free form DRL: ガイド付きルールデザイナーを使用せずに条件要素を自由に定義できる free form DRL フィールドを挿入します。free form DRL のテンプレートキーには、@{key} 形式を使用します。
  2. 条件要素 (Customer など) を選択し、OK をクリックします。
  3. ガイド付きルールテンプレートデザイナーで条件要素をクリックし、Modify constraints for Customer ウィンドウで、フィールドへの制限の追加、複数のフィールド制約の適用、新しい数式表現の追加、式エディターの適用、または変数名の設定を行います。

    図58.3 条件の変更

    条件の変更
    注記

    変数名を使用すると、ガイド付きルールの別の設定でファクトまたはフィールドを指定できます。たとえば、Customer の変数を c にし、CustomerApplicant であることを指定する別の Applicant 制約で、c を参照します。

    c : Customer()
    Applicant( this == c )

    制約を選択したら、ウィンドウが自動的に閉じます。

  4. 追加した制約の隣にあるドロップダウンメニューから、制限の演算子 (greater than など) を選択します。
  5. 編集アイコン ( 6191 ) をクリックして、フィールド値を定義します。
  6. このテンプレートに基づいたルール間で値が異なる場合は、テンプレートキー を選択し、$key 形式でテンプレートキーを追加します。これにより、フィールド値を、対応するデータテーブルに定義する実際の値と入れ替えて、同じテンプレートから異なるルールを生成します。ルールテンプレートの中で、ルール間で変更しないフィールド値については、別の型の値を使用できます。
  7. フィールド制約を複数適用するには、条件をクリックし、Modify constraints for Customer ウィンドウで、Multiple field constraint ドロップダウンメニューから All of(And) または Any of(Or) を選択します。

    図58.4 複数のフィールド制約の追加

    複数のフィールド制約の追加
  8. ガイド付きルールテンプレートデザイナーで制約をクリックして、フィールド値をさらに定義します。
  9. 条件要素をすべて定義したら、ガイド付きルールテンプレートデザイナーで Save をクリックして、設定した内容を保存します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.