ワークフローのイベントオブジェクトで実行できる操作

目次

ワークフローのイベントオブジェクトで実行できる操作の一覧です。
ワークフローオブジェクトの詳細は、 ワークフローオブジェクトを確認してください。

イベント共通

Promise 対応

garoon.Promiseオブジェクトをreturnすることで、非同期処理の完了を待ってからフィールドの値に応じた制御ができます。
同じGaroonのイベントに複数のイベントハンドラーが登録されている場合、エラーなどが発生してThenableオブジェクトが棄却されると、後続のイベントハンドラーの処理は実行されません。
記述方法は Promise と async/awaitを参考にしてください。

ワークフローの作成イベント

申請の作成画面を表示したとき 申請を提出したとき
項目の値を書き換える
指定した URL に遷移する
Promise 対応

項目の値を書き換える

ハンドラー内で ワークフローオブジェクトの値を変更してイベントオブジェクトをreturnすると、項目の値を書き換えることができます。

  • 項目コードを設定していない項目は書き換えることができません。
  • フォームから削除された項目は書き換えることができません。
  • 最後のハンドラー内でイベントオブジェクトをreturnしない場合、項目の値は更新されません。
  • 複数のハンドラーを登録した場合、最後のハンドラーでreturnした値を使って、項目の値が更新されます。
非対応プロパティ
  • 自動計算
  • ファイル添付
サンプルコード

ワークフローの作成画面を表示したとき、ワークフローの項目に初期値をセットする例です。

1
2
3
4
5
garoon.events.on('workflow.request.create.show', (event) => {
  event.request.items.Item1.value = 'この文字列で上書き';

  return event;
});

指定した URL に遷移する

ハンドラー内でイベントオブジェクトのurlプロパティに値を代入してイベントオブジェクトをreturnすると、イベント処理後に指定したURLへ遷移できます。

サンプルコード

申請の作成(内容の確認)画面で【申請する】をクリックして成功したとき、ワークフローの一覧画面に遷移する例です。

1
2
3
4
garoon.events.on('workflow.request.create.submit.success', (event) => {
  event.url = '/g/workflow/index.csp';
  return event;
});

ワークフローの承認イベント

申請の承認画面を表示したとき 申請を承認したとき
項目の値を書き換える
Promise 対応

項目の値を書き換える

ハンドラー内で ワークフローオブジェクト の値を変更してイベントオブジェクトをreturnすると、項目の値を書き換えることができます。

  • 項目コードを設定していない項目は書き換えることができません。
  • フォームから削除された項目は書き換えることができません。
  • 最後のハンドラー内でイベントオブジェクトをreturnしない場合、項目の値は更新されません。
  • 複数のハンドラーを登録した場合、最後のハンドラーでreturnした値を使って、項目の値が更新されます。
非対応プロパティ
  • メニュー
  • ラジオボタン
  • チェックボックス
  • 路線ナビ連携
  • 自動計算
  • ファイル添付
サンプルコード

ワークフローの承認画面を表示したとき、ワークフローの項目に初期値をセットする例です。

1
2
3
4
garoon.events.on('workflow.request.approve.show', (event) => {
  event.request.items.Item1.value = 'この文字列で上書き';
  return event;
});

ワークフローの確認イベント

申請を確認したとき
指定した URL に遷移する
Promise 対応

指定した URL に遷移する

ハンドラー内でイベントオブジェクトのurlプロパティに値を代入してイベントオブジェクトをreturnすると、イベント処理後に指定したURLへ遷移できます。

サンプルコード

未処理申請の処理画面で【確認する】をクリックして成功したとき、ワークフローの一覧画面に遷移する例です。

1
2
3
4
garoon.events.on('workflow.request.acknowledge.submit.success', (event) => {
  event.url = '/g/workflow/index.csp';
  return event;
});