イベントを作成

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:4分
  • 適切な既存のイベントがない場合は、独自のイベントを作成できます。

    始める前に

    必要なロール:admin

    このタスクについて

    gs.EventQueue 関数はバックエンドと直接連携するため、gs.EventQueue() によって呼び出されるビジネスルールは呼び出されません。

    手順

    1. 移動先 すべて > システムポリシー > イベント > レジストリをクリックし、 新規 を選択します。
    2. フォームのフィールドに入力します。
      表 : 1. イベント登録フォームの完了
      フィールド 説明
      イベント名 新しいイベントの名前。
      テーブル このイベントのデータベーステーブル。
      注:
      イベントと同じスコープ内にあるテーブルビューとデータベースビューのみがリストに表示されます。
      キュー イベントがトリガーされたときに入れられるキューの名前。

      小文字のみを使用し、アンダースコア (_) 以外の特殊文字は使用しないでください。たとえば、my_queue。「Using custom queues to process events」を参照してください。

      優先度 メッセージが処理される順序。値が小さいほど優先度が高くなります。
      注:
      com.glide.sysevent.priority.enabled システムプロパティはデフォルトで有効になっています。無効にすると、イベント処理は優先度別に実行されません。
      問い合わせユーザーのアクセス 制限付き申請者アクセスの設定。
      • 申請者制限:リソースに対する呼び出しは手動で承認する必要があります。
      • 申請者追跡:リソースに対する呼び出しは自動的に承認されます。
      解雇者 イベントを実行するビジネスルールの名前。このフィールドは参照専用で、どのプロセスにも使用されません。イベントを再度見つけるのに十分な情報があることを確認します。
      説明 イベントの目的の簡単な説明。
    3. [ビジネスルール] 関連リンクをクリックします。
    4. ベースシステムテーブルのイベントを作成する場合は、テーブルの既存のイベントビジネスルールを選択します。
      たとえば、sc request events ビジネスルールを選択してカスタム要求イベントを作成します。
    5. 既存のイベントビジネスルールを更新する場合は、[スクリプト] に新しい条件を追加します。
      次のサンプルスクリプトは、ユーザーのシステム ID が parm1 で、ユーザーのユーザー名が parm2 の request.commented イベントを追加します。
      if (current.operation() != 'insert' && current.comments.changes()) {
      gs.eventQueue('request.commented', current, gs.getUserID(), gs.getUserName());
      }
    6. カスタムテーブルのイベントを作成する場合は、データベース操作の後に実行される新しいビジネスルールを作成します。
      たとえば、次のビジネスルールは、マーケティングイベントと呼ばれるカスタムアプリケーションに対していくつかのイベントを定義します。
      表 : 2. イベントビジネスルールのサンプル
      フィールド
      名前 出席者のイベント
      テーブル 出席者 [x_snc_marketing_ev_attendee]
      アプリケーション マーケティングイベント
      詳細 選択済み
      時期 トランザクションの後
      挿入 選択済み
      更新 選択済み
      削除 選択済み
      スクリプト
      次のようなカスタムスクリプトを追加します。
      • 現在のレコードで 1 つ以上の条件をチェックします。
      • gs.eventQueue() メソッドを呼び出し、イベント名を指定します。

      コードサンプルを参照してください。

      注:
      [フィルター条件][ロールの条件]、または [条件] 値を追加する場合は、想定どおりにビジネスルールが実行されることを確認します。
      (function executeRule(current, previous /*null when async*/) {
         //This function will be automatically called when this rule is processed.
              //Add event when attendee inserted
              if(current.operation() == 'insert' && current.marketing_event.changes()) {
                      gs.eventQueue('x_snc_marketing_ev.attendee.added', current,
      current.marketing_event, current.email);
              }
              //Add event when marketing event changes
              if(current.operation() == 'update' && current.marketing_event.changes()) {
                      gs.eventQueue('x_snc_marketing_ev.attendee.deleted', previous,
      previous.marketing_event, previous.email);
                      gs.eventQueue('x_snc_marketing_ev.attendee.added', current,
      current.marketing_event, current.email);
              }
              //Add event when attendee deleted
              if(current.operation() == 'delete') {
                      gs.eventQueue('x_snc_marketing_ev.attendee.deleted', current,
                    current.marketing_event, current.email);
      }
      })(current, previous);
    7. イベントを登録します。

    次のタスク

    イベントを処理するスクリプトアクションまたは通知を作成します。