> ## Documentation Index
> Fetch the complete documentation index at: https://www.integrate.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ETL: Xplenty中級編 Part6: ワークフロー機能について

> Integrate.io ETLのワークフロー機能でDataflowパッケージやSQLクエリタスクを希望の順序に並べ、実行結果に応じて異なる実行パスや動的変数を扱う方法を紹介します。

## ワークフローとは？

Xplentyのワークフロー機能は、「タスクを希望の実行順序に並べることができる特別なタイプのパッケージ」です。ワークフロー内のタスクはDataflowパッケージまたはSQLクエリ操作になります。

## 主要な機能

### 1) 実行結果のステータスに応じて異なる実行パスをトリガする

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/intermediate-part06-jp/image-1.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=80831c8ac524dfe4ac51c99358735325" alt="intermediate-part06-jp image 1" width="703" height="447" data-path="images/japanese-knowledge-base/intermediate-part06-jp/image-1.webp" />
</Frame>

先行するタスクの実行結果に基づいて異なるパスを実行できます。サポートされるステータスは：

* on success（緑）
* on failure（赤）
* on completion（青）

### 2) 先行タスクの実行状況に基づく実行条件（制御）の追加

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/intermediate-part06-jp/image-2.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=5ab01c2552410928c63fa94496e217a0" alt="intermediate-part06-jp image 2" width="505" height="446" data-path="images/japanese-knowledge-base/intermediate-part06-jp/image-2.webp" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/intermediate-part06-jp/image-3.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=86a853a2f77d118a75c4dcb05abcefda" alt="intermediate-part06-jp image 3" width="1053" height="829" data-path="images/japanese-knowledge-base/intermediate-part06-jp/image-3.webp" />
</Frame>

「いずれか(OR）」または「すべて(AND)」の実行条件をタスクに追加できます。AND条件では両方のタスクが成功した場合のみ実行され、OR条件ではいずれかが成功した場合に実行されます。

### 3) タスク実行時に使用する動的な変数を渡す

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/intermediate-part06-jp/image-4.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=2104c39ae713969ed6afd7a6a89b77ca" alt="intermediate-part06-jp image 4" width="311" height="590" data-path="images/japanese-knowledge-base/intermediate-part06-jp/image-4.webp" />
</Frame>

ワークフローレベルの変数はDataflowパッケージレベルで定義された値を上書きします。SQLタスクが返した値をスカラー値を含むワークフロー変数に保存でき、後続のタスクに渡せます。

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/intermediate-part06-jp/image-5.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=bbd6dd5233d8714c32f99c66481ab020" alt="intermediate-part06-jp image 5" width="1057" height="1105" data-path="images/japanese-knowledge-base/intermediate-part06-jp/image-5.webp" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/intermediate-part06-jp/image-6.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=6424e9fdb650d670458706ffc6d4ae1a" alt="intermediate-part06-jp image 6" width="1053" height="829" data-path="images/japanese-knowledge-base/intermediate-part06-jp/image-6.webp" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/intermediate-part06-jp/image-7.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=fb1ae2346358f614a2d9991a0960b6c6" alt="intermediate-part06-jp image 7" width="1055" height="942" data-path="images/japanese-knowledge-base/intermediate-part06-jp/image-7.webp" />
</Frame>

## ワークフロー使用例

Eコマース企業がマーケティングキャンペーン管理にワークフローを活用する例：

* SQLクエリでローンチ予定のキャンペーンをチェック
* キャンペーン識別子をワークフロー変数に保存
* アクティブなキャンペーンがある場合、複数のETLタスクをトリガー（テーブル作成、ランディングページ更新、データベース更新、メール準備、キャッシュウォーミング）
* 相互依存のタスクを正しい順序で配置
* 失敗時のリカバリータスクや成功時のアクション定義
* 期限切れキャンペーン検出と後処理
* 定期実行スケジューリング（例：毎日夜11:30）

## その他の便利な機能

* Dataflowパッケージとしてのモジュール化で保守性向上
* 実装の複雑さを抽象化しながら正しい実行順序を保証
* バージョン管理による問題時の切り替え
* ダッシュボードでの監視と通知
* ローコードインターフェースで複雑な管理業務を簡素化

## 参考：Workflowレベルの変数とDataflowの変数の関係について

### 例1: Workflow変数とDataflow変数で同じ名前の変数を定義した場合

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/intermediate-part06-jp/image-8.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=c725afd3a59339e7e52cfb0ae31c562c" alt="intermediate-part06-jp image 8" width="1057" height="942" data-path="images/japanese-knowledge-base/intermediate-part06-jp/image-8.webp" />
</Frame>

Workflow変数をDataflow変数に割り当てる必要があります。

### 例2: Workflowレベルでのみ変数が定義されている場合

Dataflowレベルで変数定義がなくても、Workflowレベルで値が設定されていれば、Dataflowタスクはワークフロー変数の値を使用します。

### 変数の表記に注意:

* SQL内での変数指定：「`${変数名}`」
* 通常パッケージ内（URLやファイルパスなど）：「\$変数名」

## まとめ

Xplentyのワークフロー機能は「シンプルですが、非常に役に立つ機能」です。詳細は[Xplentyヘルプ](https://www.xplenty.com/docs/creating-a-workflow/)で確認できます。
