ビジネスルールおよびスクリプトインクルード

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:3分
  • ビジネスルールは、インスタンスレコードの CRUD (作成、読み取り、更新、削除) 操作中に実行できるサーバーサイドのアクションです。

    注:
    エージェント AI を使用したアプリケーションの作成を検討してください。詳細については、「エージェント AI を使用してアプリケーションをビルドおよび編集する」を参照してください。

    ビジネスルールを使用する際の推奨プラクティスは次のとおりです。

    • ビジネスルールは小規模で具体的にします。
    • ベースシステムのビジネスルールは変更しないでください。
    • グローバルビジネスルールの代わりにスクリプトインクルードを使用します。
    • スクリプティングは必要な場合にのみ使用します。
    • 再利用可能なスクリプトロジックをスクリプトインクルードに格納します。
    • クエリを使用して、ビジネスルール内で処理されるレコードを制限します。
    • クライアントスクリプトを実行する際の効率を向上させるために、クライアント呼び出し可能ビジネスルールを使用しないでください。
    • ビジネスルールをいつ実行するかを制御するには、常にビジネスルールで条件を使用します。条件付きでビジネスルールを実行することもデバッグに役立ちます。ビジネスルールが条件なしで実行されることはほとんどありません。

    ビジネスルールは、データベース操作の前または後に実行するように構成できます。また、非同期で実行するように構成することも、フォームの表示前やクエリの実行前にも実行することもできます。

    実行 使用するタイミング
    データベース操作の前に同期的に実行 保存操作の一環として、現在のオブジェクトの値を設定または更新します。実行を検証し、必要に応じて中止します。 開発者は、そのレコードの別の入力に基づいて現在のレコードのステータスを設定したいと考えています。
    データベース操作の後に同期的に実行 データベースの更新後にイベントと通知をトリガーして、前のオブジェクトにアクセスしたり、何かを順番に発生させたりします。更新されているベーステーブル以外の関連レコードを更新して、前のオブジェクトにアクセスしたり、何かを順番に発生させたりします。 開発者は、現在のレコードから子レコードに値をカスケードしたいと考えています。
    非同期 データベース操作が完了した後、別のプロセスとして非同期で実行される ルールによってトリガーされるプロセスの実行には、時間がかかる場合があります。操作をトリガーしたユーザーがすぐに出力を必要としない場合。レコードの以前の値または特定の順序のアクションにアクセスする必要がない場合に、イベント、通知、または関連レコードの更新をトリガーします。 開発者は、時間がかかる可能性がある外部プロセスをトリガーしたり、多数のレコードを更新したりする必要があります。
    表示 対応するフォームが表示されるたびに実行される サーバーサイドのオブジェクトをクライアントサイドのスクリプトで使用できるようにするために使用されます。 開発者は、現在のレコードに関連付けられたユーザーに関する情報を g_scratchpad オブジェクトに書き込み、クライアントサイドスクリプトで使用したいと考えています。
    注:
    current.update() は、ビジネスルールでは使用しないでください。current.update() を使用すると、追加のデータベース操作がトリガーされ、通知の重複や再帰ループなどが発生する可能性があります。

    スクリプトインクルードを使用して、サーバースクリプトで使用できるように JavaScript の関数およびクラスを格納します。各スクリプトインクルードは、任意のサーバーサイドスクリプトで再利用できるオブジェクトクラスまたは関数を定義します。

    スクリプトインクルードの他の場所で使用する必要があるコードを保存します。ビジネスルール、UI アクション、ワークフロースクリプト、スクリプト済み REST APIなどからスクリプトインクルードを呼び出します。UI アクションからビジネスルールを呼び出すか、スクリプト済み REST APIから UI アクションを呼び出す代わりに、スクリプトインクルードにコードを配置し、両方の場所からスクリプトインクルードを呼び出します。

    関数をスクリプトインクルードに保持すると、関数を他のスクリプト領域に展開する前に関数をテストできるため、全体的な開発とテストの時間を短縮できます。

    詳細については、「ビジネスルール」を参照してください。