アクション・チェーンで「イベントの起動」アクションを使用して、カスタム・イベントをトリガーできます。これにより、通知の表示やデータの変換などの操作を行うために、別のアクション・チェーンが開始されます。 また、モジュール関数(JavaScript関数)でイベント・ヘルパーのfireCustomEvent()メソッド(モジュール機能イベント・ヘルパーを参照)を使用してカスタム・イベントをトリガーすることもできます:

図jsac-add-listener-component.pngの説明
各カスタム・イベントには、アクション・チェーンをシリアルに実行するかパラレルに実行するかを設定する動作プロパティがあります。 デフォルトの動作は、アクション・チェーンを並行して実行する"Notify"です。 このプロパティの詳細は、「カスタム・イベントのコール・イベント・リスナーの選択」を参照してください。
カスタム・イベントを作成した後、1つ以上のアクション・チェーンを開始するためのイベント・リスナーを作成します。
この例では、モジュール関数を使用して表のojRowActionイベントにサブスクライブし、アクション・チェーンを開始するカスタム・イベントをトリガーします。 アクション・チェーンは、選択した行のデータをページ変数に保存します。 開始するには、次の手順を実行します。
- 選択した行データを保持するオブジェクト型のページ変数を作成します:
この部では、表のojRowActionイベントをサブスクライブするJavaScript関数(モジュール関数)を作成します。これは、ユーザーが表の行をクリックするとトリガーされます。 このイベントを使用してカスタム・イベントをトリガーします。これにより、行のデータをrowDataページ変数に保存するアクション・チェーンが開始されます。
- ファンクションを作成するには、JavaScriptタブを選択します。 コンテキストの
eventHelperオブジェクトのfireCustomEvent()メソッドを使用して、カスタム・イベントをトリガーし、必要なペイロードを渡します。 eventパラメータには、行のデータ(event.detail.context.data)が含まれます。
コード例を次に示します: constructor(context) {
this.eventHelper = context.getEventHelper();
}
subscribeToTableRowActionEvent(table) {
table.addEventListener("ojRowAction", (event) => {
this.eventHelper.fireCustomEvent("onRowAction_CustomEvent", {rowData: event.detail.context.data});
});
};
次に、ページのvbEnterイベントに対してイベント・リスナーを作成する必要があります。これは、ページの起動時にトリガーされます。 このイベント・リスナーを使用して、ファンクションをコールするアクション・チェーンを起動し、表のojRowActionイベントをサブスクライブします。
- ページの
vbEnterイベントのイベント・リスナーを作成するには、「イベント・リスナー」タブを選択し、「+イベント・リスナー」ボタンをクリックして作成します。
- ウィザードのイベントの選択ステップで、「ライフサイクル・イベント」セクションで
vbEnterを選択し、「次」をクリックします。
- アクション・チェーンの選択ステップで、「ページ・アクション・チェーン」セクションの追加アイコンをクリックして、リスナーが開始するアクション・チェーンを作成します。
このリスナーのカスタム・イベントに入力パラメータ(入力パラメータではない)がある場合、カスタム・イベントの入力パラメータを含むevent入力パラメータを使用してアクション・チェーンが作成されます。
アクション・チェーン・エディタが表示され、そこでアクション・チェーンを作成して、表のojRowActionイベントにサブスクライブするファンクションをコールできます。
- コール関数アクションをキャンバスに追加します。 その
Function NameプロパティをJavaScript関数に設定し、tableパラメータを使用してその表を関数に渡します:
次のパートでは、表のojRowActionイベントによってトリガーされるカスタム・イベントを作成します。 行のデータをrowDataページ変数に割り当てるアクション・チェーンも作成します。
- ページの「イベント」タブで、「+カスタム・イベント」ボタンをクリックしてカスタム・イベントを作成します。 プロパティ・ペインで、ペイロード・プロパティの「パラメータの追加」リンクをクリックし、オブジェクト・タイプの入力パラメータを定義します。 この入力パラメータは、
rowDataページ変数にデータを割り当てるアクション・チェーンに行のデータを渡すために使用されます。
- カスタム・イベントの動作プロパティで、アクション・チェーンをシリアルに実行するかパラレルに実行するかを設定します。 デフォルトの
notifyは並列です。 各オプションの詳細は、「カスタム・イベントのコール・イベント・リスナーの選択」を参照してください。
イベントが発生したときに開始するアクション・チェーンを指定するために、イベントのイベント・リスナーを作成する必要があります(1つのイベント・リスナーで複数のアクション・チェーンを起動できます)。
- ページの「イベント・リスナー」タブで、「+イベント・リスナー」ボタンをクリックしてリスナーを作成します。
- ウィザードのイベントの選択ステップで、「ページ・イベント」セクションまでスクロールし、作成したカスタム・イベントを選択します。 「次へ」をクリックします
- アクション・チェーンの選択ステップで、「ページ・アクション・チェーン」セクションの追加アイコンをクリックして、リスナーで開始するアクション・チェーンを作成します。
リスナーのアクション・チェーンがここで作成されるときに、リスナーのカスタム・イベントに入力パラメータがある場合、アクション・チェーンはevent入力パラメータを使用して作成されます。 このeventオブジェクトには、カスタム・イベントの入力パラメータが含まれます(例: event.param1、event.param2...)およびeventオブジェクトは、新しいアクション・チェーンに自動的に渡されます。
- アクション・チェーン・エディタで、アクション・チェーンには、カスタム・イベントの入力パラメータを含む
event入力パラメータがあることに注意してください。 変数の割当てアクションを追加し、そのVariableプロパティを、行のデータを含むページ変数に設定します。 最後に、そのValueプロパティを、アクション・チェーンに渡されたeventオブジェクトの関連値に設定します: