ブロックリファレンス

BLOCKS Reference

基本

ジョブ起動

概要

このブロックは、指定したフローを実行します。フローの指定において、このブロックを含む自身のフローは指定できません(実行できません)。

このブロックから起動されたフローは、起動元のフローから以下の情報を継承します。

  • フローの実行予定日時
  • 以下のフロー実行内変数
    • _group_id:フローのグループID(フローごとに自動採番されたグループ番号)
    • _execute_user_id:フローを実行したユーザーのID
    • _execute_user_name:フローを実行したユーザーの名前
  • 指定された変数

フローの実行予定日時は、定期実行・手動実行・外部実行で異なります。

  • 定期実行されるフロー:[フローの開始]ブロックの[開始時間]プロパティの時間です。
  • 手動実行されるフロー:フローの手動実行をMAGELLAN BLOCKSが受け付けた時間です。
  • 外部実行されるフロー:パラメーターtarget_timeに指定された時間です。

report 注意

上図のようにあるフロー(フローA)のジョブ起動ブロックから別のフロー(フローB)を指定し、フローBからジョブ起動ブロックを使ってフローAを指定すると、フローの実行が無限に繰り返されてしまいます(無限ループ)。この例では、単純な 2つのフローで解説しましたが、3つ以上のフローでもジョブ起動ブロックの使い方次第では同様のケースに陥ってしまいます。

ジョブ起動ブロックの使用にあたっては、無限ループに陥らないよう十分注意してください。

プロパティ

プロパティ名 説明
ブロック名

ブロックの名前を指定します。ブロックに表示されます。

ID

実行するフローのIDを指定します。

このブロックを含む自身のフローのIDは指定できません(実行できません)。

lightbulb ヒント

フローのIDは、フローリストで設定します。このブロックで実行させたいフローには、フローのIDを設定してください。

変数展開の指定が可能][%形式の文字列書式の指定が可能]
スキップ

フロー実行時に、このブロックをスキップするかしないかを指定します。

  • check_box_outline_blank:このブロックをスキップしない(実行する)
  • check_box:このブロックをスキップする(実行しない)
ブロックメモ

ブロックに対するコメントを指定します。

起動するジョブに委譲する変数名

起動されたジョブで参照させたい変数を指定します。複数の変数が指定できます。

変数名にドット(.)は指定できません。foo.barのようなfooオブジェクトのキーを変数として、起動されたジョブに渡すことはできません。

  • ]ボタンクリックで、変数を追加
    複数指定する場合は、個数分[]ボタンをクリックして追加
  • ]ボタンクリックで、変数を削除

使用例

ここでは、Googleスプレッドシートの日次売上データを使って、月次・店舗別の売上集計と商品カテゴリ別の売上ランキングを算出し、結果をスプレッドシートに出力する例を紹介します。

入力となるGoogleスプレッドシートのサンプルデータは以下の通りです。

項目 説明
ファイル名 日次売上データ
ワークシート名 売上明細
データ
日付 店舗名 商品カテゴリ 売上金額
2023-05-01 東京店 食品 120000
2023-05-01 東京店 衣料品 85000
2023-05-01 大阪店 食品 102000
2023-05-01 大阪店 日用品 67000
2023-05-02 東京店 食品 115000
2023-05-02 東京店 衣料品 93000
2023-05-02 大阪店 食品 108000
2023-05-02 大阪店 日用品 72000
フローA:日次売上データの集計と分析

スプレッドシートからテーブルへロード」ブロックで日次売上データを取得し、BigQueryにロードします。

プロパティ名
ブロック名 売上明細をテーブルへロード
ファイルURL 日次売上データのGoogleスプレッドシートのURL
ワークシート名 売上明細(日次売上データのワークシート名)
読み飛ばし行数 1
投入先のデータセット example
投入先のテーブル daily_sales
スキーマ設定
date DATE NULLABLE
store_name STRING NULLABLE
category STRING NULLABLE
sales_amount INTEGER NULLABLE

クエリーの実行」ブロックで月次・店舗別の売上を集計し、結果をmonthly_sales_by_store変数に格納します。

プロパティ名
ブロック名 月次・店舗別の売上集計
クエリー
SELECT
  FORMAT_DATE('%Y-%m', date) AS month,
  store_name,
  SUM(sales_amount) AS total_sales
FROM example.daily_sales
GROUP BY month, store_name
ORDER BY month, store_name
結果を格納する変数 monthly_sales_by_store

クエリーの実行」ブロックで商品カテゴリ別の売上ランキングを算出し、結果をsales_ranking_by_category変数に格納します。

プロパティ名
ブロック名 商品カテゴリ別の売上ランキング
クエリー
SELECT
  category,
  SUM(sales_amount) AS total_sales,
  RANK() OVER (ORDER BY SUM(sales_amount) DESC) AS rank
FROM example.daily_sales
GROUP BY category
ORDER BY total_sales DESC;
結果を格納する変数 sales_ranking_by_category

「ジョブ起動」ブロックでフローBを呼び出し、集計結果の変数を渡します。

プロパティ名
ID SARS_Flow
起動するジョブに委譲する変数名
  • monthly_sales_by_store
  • sales_ranking_by_category
フローB:売上集計結果の保存とレポート作成

フローの開始」ブロックで「ジョブ起動」ブロックから呼び出せるようにIDを設定します。

プロパティ名
ID SARS_Flow
ブロック名 売上集計結果の保存とレポート作成

スプレッドシートを更新」ブロックで月次・店舗別の売上集計結果をスプレッドシートに出力します。

プロパティ名
ブロック名 月次・店舗別の売上集計をスプレッドシートに反映
ファイル名 日次売上データのGoogleスプレッドシートのURL
ワークシート名 月次・店舗別の売上集計
開始セルを基点に全てのセルをクリアする check_box
出力データの変数 monthly_sales_by_store

スプレッドシートを更新」ブロックで商品カテゴリ別の売上ランキングをスプレッドシートに出力します。

プロパティ名
ブロック名 商品カテゴリ別の売上ランキングをスプレッドシートに反映
ファイル名 日次売上データのGoogleスプレッドシートのURL
ワークシート名 商品カテゴリ別の売上ランキング
開始セルを基点に全てのセルをクリアする check_box
出力データの変数 sales_ranking_by_category

以上で、Googleスプレッドシートの日次売上データを集計・分析し、結果をスプレッドシートに出力するフローの完成です。

このように、「ジョブ起動」ブロックを使ってフロー間で変数の値を受け渡すことで、フローを分割して処理を委譲できます。

ポイントは以下の通りです。

  • 複雑な処理は適切に分割し、「ジョブ起動」ブロックで別フローに委譲する
  • 必要な情報は変数として渡し、呼び出し先のフローで活用する
  • 呼び出し元と呼び出し先のフローが密結合にならないよう、必要最小限の変数のみ委譲する

上手く活用することで、フローの見通しが良くなり、再利用性や保守性を高められます。ただし、無限ループに陥らないよう、フローの呼び出し関係には十分注意が必要です。

この情報は役に立ちましたか?