Docly Child

ワークフローの強制終了

1572 views

この記事では、実行中のワークフローを意図した箇所で自動的に途中終了させる方法について紹介します。

【できるようになること】

  • 指定の箇所でワークフローを強制的に終了
  • 指定の条件になったらワークフローを強制的に終了
ワークフローの強制終了を利用する場面

ワークフローのメンテナンス(途中まで実行させて結果を確認したい)や、特定条件を満たした際に途中終了させたい場合などに使用します。

ワークフローを強制終了させるアクションとして、正常終了するExit(正常終了)アクションと、エラー終了するKillAtempt(強制終了)アクションがあります。

どちらもワークフローを実行途中で終了するアクションとなります。

両アクションの主な機能は、以下の通りです。

  • Exitアクション
    • 実行セッションは正常に終了します。
    • 任意の終了メッセージを設定できます。

  •  KillAtemptアクション
    • 実行セッションはエラー終了します。
    • 任意の終了メッセージを設定できます。
    • エラー時に起動するワークフローを起動できます。 

 ワークフローの設定例

ワークフローを途中で終了する例を2点紹介します。

ワークフローの作成途中や、メンテナンス時に任意の場所までで実行を終了させたい場合に利用されます。

IF(条件分岐)を使用すると、特定の条件を満たした際にワークフローを強制終了させることができます。

※IFの範囲内にExitアクションを設置する形になります。

処理をする件数が0件であったときに、途中終了したい場合に有効です。

※ワークフローの詳細は、下部のワークフロー設定内容2をご覧ください

If(条件分岐)とKillAttempt(強制終了)を組み合わせることで、特定の条件を満たした際にエラー時に実行するワークフローを起動することが可能です。

エラー終了となるため、セッション画面から実行ログを見つけやすくなります。

※ワークフローの詳細は、下部のワークフロー設定内容3をご覧ください

Exitアクション

KillAttemptアクション

# テキストを作成
+text_1:
  action>: Text
  text: 202108

# 強制終了
+kill_attempt_1:
  action>: KillAttempt
  message: 'ここで終了する'
# リストを作成 処理をするリスト(空)
+create_list_1:
  action>: CreateList
  items: []
  private: false

# 変数に保存 処理をするリスト
+store_value_2:
  action>: StoreValue
  key: List
  value: +create_list_1
  private: false

# 変数に保存 リストの件数を取得
+store_value_1:
  action>: StoreValue
  key: Listlength
  value: ${List.length}
  private: false

# 真のとき 件数は0件であればワークフローを終了する
+if_1:
  if>: ${Listlength === 0}
  _do:

    # 正常終了
    +exit_1:
      exit>: '件数が0件のため、ワークフローを終了します。'

# テキストを作成 件数が0件でなければテキストを作成
+text_1:
  action>: Text
  text: '件数は${Listlength}件ありました。'
  private: false
# リストを作成
+create_list_1:
  action>: CreateList
  items: [1,2,3,4,5]

# 各要素について繰り返す
+for_each_1:
  for_each>:
    el: +create_list_1
  _do:

    # テキストを作成
    +text_2:
      action>: Text
      text: '現在の繰り返し回数は${el}です'

    # 真のとき_繰り返している要素が3になったら
    +if_1:
      if>: ${el === 3}
      _do:

        # 強制終了
        +kill_attempt_1:
          action>: KillAttempt
          message: '繰り返し回数が${el}になったため、ワークフローを強制終了します'
<KillAtempt>強制終了

このページは役に立ちましたか?