6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TROCCOの条件分岐で時間帯によって分岐するワークフローを作ってみた

6
Last updated at Posted at 2025-09-29

はじめに

TROCCOのワークフローでは、条件分岐というタスクを使うことができます。条件分岐タスクでは、条件分岐より前に実行されたタスクの結果によって、そのあとの処理を分岐することができる機能です。

条件分岐のタスクを使って、ワークフローが実行された時間帯によって処理が分岐するワークフローを作りましたので、内容をまとめてみました。

【2026/1/6追記】
本記事では条件分岐にデータマート定義を使っていますが、他にデータチェックを使う方法もございます。データチェックを使うことで、DWH上にテーブルの作成が不要となります。TROCCOヘルプセンターのFAQに記事がございますので、データチェックを使用する方法についてはそちらをご確認ください。
柔軟にスケジュールを設定する方法

ワークフローの設定

ワークフロー全体としては以下の画像のようになっています。

2025-09-28_18h29_41.png

ワークフローの概要としては以下の通りです。

  1. データマートでワークフローの処理時間の判定
  2. 条件分岐で[1.]の結果から処理を分岐
  3. 条件に一致/不一致(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時台の場合の転送ジョブ」のタスクが実行されています。

2025-09-29_17h10_45.png

18時台にワークフローを実行した場合は、「9時から17時台以外の転送ジョブ」のタスクが実行されています。

2025-09-28_18h41_41.png

さいごに

TROCCOのワークフローの条件分岐を使って、ワークフローが実行された時間帯によって分岐するワークフローを作ってみました。条件分岐の使い方は様々あると思いますが、使い方の一つの例として参考にしていただけますと幸いです。

参考

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?