はじめに
TROCCOのワークフローでは、条件分岐というタスクを使うことができます。条件分岐タスクでは、条件分岐より前に実行されたタスクの結果によって、そのあとの処理を分岐することができる機能です。
条件分岐のタスクを使って、ワークフローが実行された時間帯によって処理が分岐するワークフローを作りましたので、内容をまとめてみました。
【2026/1/6追記】
本記事では条件分岐にデータマート定義を使っていますが、他にデータチェックを使う方法もございます。データチェックを使うことで、DWH上にテーブルの作成が不要となります。TROCCOヘルプセンターのFAQに記事がございますので、データチェックを使用する方法についてはそちらをご確認ください。
柔軟にスケジュールを設定する方法
ワークフローの設定
ワークフロー全体としては以下の画像のようになっています。
ワークフローの概要としては以下の通りです。
- データマートでワークフローの処理時間の判定
- 条件分岐で[1.]の結果から処理を分岐
- 条件に一致/不一致(True/False)の場合のタスクを実行
1.データマートのタスク
データマートを使ってワークフローが実行された時間帯の判定を行います。データマートの設定は以下の通りです。
- クエリ実行モード:データ転送モード
- 出力先テーブル:このデータマートの転送先となる専用のテーブルを用意
- 書き込みモード:全件洗い替え
実行するクエリは以下の通りです。このクエリを実行すると、ワークフローが実行された時間(CURRENT_TIMESTAMPの日本時間)がBETWEENの時間の範囲内(9時~17時)である場合には、出力先テーブルに「OK」のレコードが出力されます。範囲内ではない場合は、テーブルは空となります。
SELECT
'OK' AS MESSAGE
FROM
UNNEST([1])
WHERE
EXTRACT(HOUR FROM CURRENT_TIMESTAMP() AT TIME ZONE 'Asia/Tokyo') BETWEEN 9 AND 17;
2.条件分岐のタスク
条件分岐には以下のような条件式を設定します。データマートのタスクでデータ転送が1件あった場合は、後続の処理はTrueにつなげたタスクを実行します。
- 対象:時間帯の判定を行うデータマートのタスク
- プロパティ:転送件数
- 演算子:等しい (=)
- 値:1
3.条件分岐の後のタスク
条件分岐のTrueには、ワークフローの実行時間がデータマートで指定した範囲内だった場合に実行するタスクをつなげます。Falseには、範囲内ではなかった場合に実行するタスクをつなげます。
なお、Trueの場合のみタスクを実行し、Faleseの場合にはタスクを実行しない(タスクをつなげない)、といった分岐も可能です。
ワークフローの実行結果を確認
ワークフローを実行して、想定した動作になっているか確認してみます。
17時台にワークフローを実行した場合は、「9時から17時台の場合の転送ジョブ」のタスクが実行されています。
18時台にワークフローを実行した場合は、「9時から17時台以外の転送ジョブ」のタスクが実行されています。
さいごに
TROCCOのワークフローの条件分岐を使って、ワークフローが実行された時間帯によって分岐するワークフローを作ってみました。条件分岐の使い方は様々あると思いますが、使い方の一つの例として参考にしていただけますと幸いです。


