データパイプライン

データパイプラインは、複数のアプリからデータを収集し、結合・集計・計算を行って別のアプリに出力する機能です。 手動実行のほか、スケジュールを設定して定期的に自動実行することもできます。

処理の流れ

ソース収集
結合 / 合算
集計
計算
出力フィルタ
マッピング
出力先アプリ

例1: 複数支店の売上を合算して全社サマリを作成

「東京支店売上」と「大阪支店売上」の2つのアプリ(同じフィールド構造)から データを合算し、月×カテゴリごとに集計して「全社売上サマリ」に出力します。

ソースアプリのデータ

東京支店売上

対象月カテゴリ売上金額件数
2026-01ソフトウェア5,200,00012
2026-01ハードウェア3,800,0008
2026-02ソフトウェア6,100,00015

大阪支店売上

対象月カテゴリ売上金額件数
2026-01ソフトウェア3,100,0007
2026-01ハードウェア2,500,0006
2026-02ソフトウェア3,600,0009

1ソースアプリを追加

「東京支店売上」と「大阪支店売上」の2つをソースアプリとして追加します。同じ構造のアプリなので、結合条件は不要です。

ソースアプリの設定

東京支店売上
大阪支店売上

2集計を設定

「対象月」と「商品カテゴリ」でグループ化し、売上金額の合計と件数の合計を計算します。

集計の設定

グループ化:

対象月
商品カテゴリ

集計方法:

合計
売上金額
合計
件数
件数
(レコード数 = 支店数)

3フィールドマッピングを設定

集計結果を出力先アプリのフィールドに対応付けます。

フィールドマッピング

対象月対象月
商品カテゴリ商品カテゴリ
売上金額の合計合計売上
件数の合計合計件数
件数支店数

4出力設定

出力先は「全社売上サマリ」、出力モードは「全件置換」を選択します。毎日実行するスケジュールを設定することもできます。

出力結果

全社売上サマリ(パイプライン実行後)

対象月カテゴリ合計売上合計件数支店数
2026-01ソフトウェア8,300,000192
2026-01ハードウェア6,300,000142
2026-02ソフトウェア9,700,000242

例2: 顧客マスタと受注データを結合

「顧客管理」と「受注管理」を顧客IDで結合し、顧客名付きの受注一覧を作成します。

ソースアプリのデータ

顧客管理

顧客ID顧客名地域
C-001山田商事東京
C-002田中工業大阪

受注管理

受注番号顧客ID金額
ORD-001C-001500,000
ORD-002C-001300,000
ORD-003C-002800,000

1結合条件を設定

顧客管理の「顧客ID」と受注管理の「顧客ID」を内部結合で紐づけます。

結合条件

顧客管理
顧客ID
受注管理
顧客ID
内部結合

結合後のデータ(イメージ)

顧客名地域受注番号金額
山田商事東京ORD-001500,000
山田商事東京ORD-002300,000
田中工業大阪ORD-003800,000

例3: 計算フィールドと出力フィルタ

売上データに税込金額を計算し、100万円以上のレコードのみを出力します。

1計算フィールドを追加

計算フィールドの設定

税込金額=売上金額 * 1.1

式の入力は通常のテキスト入力です。フィールド名のボタンをクリックすると式に挿入されます。 演算子(+ - * /)、括弧、定数は直接入力できます。

2出力フィルタを設定

出力フィルタの設定

税込金額
>=
1000000

税込金額が100万円以上のレコードのみが出力先アプリに書き込まれます。

リファレンス

出力モード

モード
新規作成
動作
毎回新しいレコードを作成
用途
ログの蓄積
モード
更新または作成
動作
マッチキー(出力先の「重複禁止」フィールド)で既存レコードを検索し、あれば更新、なければ作成
用途
マスタ同期
モード
全件置換
動作
実行のたびに既存レコードをすべて削除してから新規作成(手入力したレコードも消えます)
用途
日次サマリ

集計方法(関数)

グループごとに、対象とする項目の値を以下の方法で集計できます。「件数」以外は対象項目の指定が必要です。

集計方法
合計
説明
数値の合計
対象項目
必要
集計方法
平均
説明
数値の平均
対象項目
必要
集計方法
最小 / 最大
説明
最小値 / 最大値
対象項目
必要
集計方法
中央値
説明
値を小さい順に並べた中央の値(偶数個は中央2つの平均)
対象項目
必要
集計方法
標準偏差
説明
値のばらつきの大きさ(母標準偏差)
対象項目
必要
集計方法
件数
説明
グループ内の行数(値が空の行も数えます)
対象項目
不要
集計方法
空でない件数
説明
対象項目が空でない行の数
対象項目
必要
集計方法
一意の件数
説明
対象項目に現れる異なる値の種類数
対象項目
必要
集計方法
文字列に結合
説明
対象項目の値を「, 」でつないだ文字列
対象項目
必要

日付バケット(グルーピングの粒度)

グループ化の項目に日付または日時フィールドを選ぶと、そのすぐ下に粒度セレクト(そのまま / 日 / 週 / 月)が表示されます。 「日」「週」「月」を選ぶと、元の日付をその単位の期間の開始日に丸めてからグループ化します(例: 月を選ぶと同じ月のレコードが1グループにまとまります)。

粒度
出力される値の形式
YYYY-MM-DD
2026-08-15
粒度
出力される値の形式
YYYY-MM-DD(週の開始日)
2026-08-09
粒度
出力される値の形式
YYYY-MM
2026-08
  • 週バケットの開始曜日は、そのソースアプリの休日カレンダー(アプリ設定 → 「休日カレンダー」の「週の起算曜日」。未設定時はテナント既定 → 日曜の順で解決)に従います。ソースが複数アプリにまたがる場合は、グループ化に使っているフィールドが属するアプリの設定が使われます
  • 週番号形式(例: 「2026-33週」)ではなく週の開始日そのものを値にしているため、起算曜日を変更しても既存データのキーが再定義されず、年末年始をまたぐ週でもキーが衝突しません
  • 出力される値は書き込み先のフィールドマッピングに指定した項目へ、通常の集計値と同じようにテキストとして書き込まれます(月バケットを日付型フィールドへ直接マッピングすると「2026-08」のような不完全な日付文字列になるため、テキスト型フィールドへの出力を推奨します)
  • データが1件も無い期間の行は出力されません(例えば7月分のデータが無ければ、7月の行自体が作られません)。移動窓集計で欠測期間を補う場合は下記「移動窓集計」を参照してください
  • 「年月」「年のみ」のような部分入力形式の日付フィールドはバケット化の対象にできません(保存時にエラーになります)

月バケットの区切り日(給与や請求の締め日に合わせる)

月バケットは既定では暦月(1日〜末日)で区切られますが、業務上の締め日が月末でない組織では、暦月の集計は実際の業務期間とずれます。 給与でも請求でも、20日締め・15日締めは一般的な運用です。20日締めの場合、「2026年8月分」が指すのは実際には2026-07-21〜2026-08-20です。

休日カレンダー(アプリ設定 → 「休日カレンダー」の「月の区切り日」。未設定時はテナント既定 → 末日の順で解決)で 1〜31 の区切り日を指定すると、月バケットの単位そのものをその締め日に合わせられます。

月の区切り日による「2026-08」バケットの違い

月の区切り日「2026-08」バケットが指す期間
末日(既定)2026-08-01 〜 2026-08-31
20日2026-07-21 〜 2026-08-20
  • 既定値は末日で、これは導入前と同じ暦月です。この設定を変更しない限り、集計結果は一切変わりません
  • 区切り日がその月に存在しない場合(区切り日を30日に設定した年の2月など)は、その月の末日に丸められます
  • この区切り日は、下記「移動窓集計」の窓の左端にもそのまま使われます。集計本体と移動窓とで期間の解釈が食い違うことはありません
  • ソースが複数アプリにまたがる場合は、上記「週の起算曜日」と同様、グループ化に使っているフィールドが属するアプリの設定が使われます
  • 用途は特定の業務に限りません。給与の20日締め・請求書の「20日締め翌月末払い」・店舗の月次棚卸を25日で締める運用など、給与・請求のどちらの締め日にも同じ設定を使えます

後から区切り日を変更すると、過去に作成済みの集計結果は前の区切りで計算されたまま残ります。区切りをまたぐ日(20日締めなら各月21日〜末日)が隣の月へ移動するため、パイプラインを再実行するまで数字が合いません(エラーは出ずに、黙って古い区切りで計算された値が残ります)。 設定画面では変更時に確認ダイアログが表示され、影響を受ける(再実行が必要な)集計の一覧も併せて表示されます。保存後は、一覧に挙がったパイプラインを実際に再実行してください。自動での再実行は行われません

ワークフローのステータスで絞る

ソースアプリにワークフローが設定されている場合、絞り込みの項目に「ワークフローのステータス」が現れます。通常の項目と同じように条件へ追加できるので、 「承認が確定した伝票だけを会計データにする」のような集計が作れます。

  • 使える条件は「等しい」「等しくない」の 2 つだけです
  • 「等しくない」は、まだ一度もワークフローに乗っていないレコードも通します(ステータスが無い状態は、どのステータスとも「等しくない」ものとして扱われます)。 特定のステータスだけを通したいときは「等しい」を使ってください
  • 複数のステータスを許したいときは、条件の結び方を「いずれか(OR)」にして 「等しい」を並べます
  • ステータスは名前ではなく内部の ID で記録されます。あとからステータスを 改名しても絞り込みは壊れません。逆に、そのステータスを削除すると設定は無効になります

サブテーブルを展開

ソースアプリにサブテーブル(テーブル形式の項目)がある場合、1レコードをサブテーブルの行ごとに分解してから後続の結合・集計・出力に渡せます。 たとえば「1件の注文(親)に複数の明細行(サブテーブル)」というデータを、明細1行 = 1レコードに展開して集計できます。

ソース行の「テーブルを展開」で展開するサブテーブルを選びます。 展開すると、サブテーブル内の各項目(商品・数量など)が通常の項目と同じように、集計対象・結合キー・マッピング元として選べるようになります。

サブテーブルの展開(注文1件 → 明細ごとの行)

顧客商品(明細)数量(明細)
A社(注文#1)製品A10
A社(注文#1)製品B5
B社(注文#2)製品A7
  • サブテーブルが空のレコードは、展開後の行が0件になります(その親レコードは集計に含まれません)
  • 展開すると、サブテーブル項目そのもの(行の集合)は集計・マッピングの対象から外れ、代わりに中の各項目が対象になります
  • 1ソースにつき展開できるサブテーブルは1つです。ソースのアプリを変更すると展開設定はリセットされます
  • 展開した行には「明細行の行番号」(1 始まり)が付きます。マッピング元・計算項目の どちらからも選べます。明細行そのものには固定の番号がないため、出力モードが「更新(upsert)」のときは、突合キーにこの行番号を必ず入れてください。 入れないと同じ親レコードの全明細が同じキーになり、あとの行が前の行を上書きして 1 行しか残りません。 なお行番号は位置なので、明細の途中に行を挿入・削除すると後続の行の番号がずれます

クロス集計(行ー列変換)

1つの集計値を、指定した項目の値ごとの「列」に展開して、行×列のマトリクス表を作れます。 たとえば「商品(行)×地域(列)の売上」のような表です。集計設定の中の「クロス集計を追加」から設定します。

クロス集計の例(商品 × 地域の売上合計)

商品東京大阪名古屋
製品A102万78万92万
製品B72万62万64万
設定
列にする項目
説明
この項目の値ごとに列を作ります(例: 地域)
設定
展開する集計値
説明
各セルに入れる集計値(例: 売上の合計)
設定
列にする値
説明
列にする値を指定します。「候補値を検出」を押すと、ソースに実際に入っている値を自動で一覧に入れられます
  • 列にした各値は、フィールドマッピングで出力先のフィールドに対応付けます(例: 東京 → 「東京売上」フィールド)
  • 出力先アプリのフィールドは固定のため、列にする値はあらかじめ指定する方式です。指定していない値のデータは出力されません(プレビューや実行結果に「スキップした件数」として表示されます)
  • 選択肢(ドロップダウン等)の項目を列にする場合、「列にする値」は選択肢から選べます

相対期間フィルタ(恒久的な期間指定)

ソースフィルタの日付・日時項目には、「今月」「先週」のような相対的な期間を表すトークンを指定できます。トークンは実行のたびにそのときの日付で再解決されるため、一度設定すれば期間の書き換えが不要になります。

トークン
$LAST_N_MONTHS(N)
意味
当月を含む直近N ヶ月(N は1〜24)
トークン
$LAST_N_WEEKS(N)
意味
当週を含む直近N週(N は1〜24)
  • この2つに加えて、「今日」「今週」「先月」「過去●日以内」など既存の相対期間の選択肢も、パイプラインのソースフィルタでそのまま使えます
  • 相対期間トークンは演算子「次の値と等しい」としか組み合わせられません
  • $LAST_N_WEEKS の週の起算曜日は、そのソースアプリの休日カレンダー(上記「日付バケット」と同じ設定)に従います。一方、既存の「今週」「先週」「来週」は月曜起算に固定のままです(休日カレンダーの週起算設定を変更しても、この3つの選択肢の範囲は変わりません)。同じ絞り込み画面の中に「起算基準が違う週の選択肢」が並ぶ形になるため、両方を使い分ける場合は意識してください

移動窓集計(直近N期間の平均・合計)

集計設定の「移動窓集計を追加」から、グループ化した日付バケット(下記「日付バケット」参照)を軸に、直近N期間分の平均・合計・最大値を計算できます。 「直近2〜6ヶ月の平均残業時間」のように、期間を毎月手作業でずらす必要がある集計を恒久化する機能です。

  • 前提条件: グループ化に日付バケット(日/週/月のいずれか)がちょうど1つ含まれている必要があります。窓の単位はそのバケットの粒度に従います(週バケットなら「直近N週」)
  • 対象メトリクス: 集計方法で作った数値の集計項目(合計・平均・最小・最大など)を1つ選びます
  • 窓の幅: 自身の期間を含めて2〜12期間
  • 関数: 平均・合計・最大値

母数(平均の分母): 平均を選んだ場合、分母の数え方を2種類から選べます。

母数
暦期間数(既定)
説明
データの無い期間を実績0とみなし、常に窓の幅(例: 6ヶ月窓なら6)で割ります
用途
法定の割増計算のように「その期間は稼働があった前提」で平均を出したい場合
母数
実在期間数
説明
実際にデータがあった期間の数だけで割ります(データの無い期間は分母に含めません)
用途
中途入社・休職など、そもそもデータが存在しない期間があり、それを母数から除きたい場合
  • 合計・最大値では、データの無い期間は寄与しません(合計には加算されず、最大値の候補にもなりません)。窓内のすべての期間にデータが無い場合、合計は0、最大値は空になります
  • 「暦期間数」を選ぶ場合の前提は「データの無い期間 = 実績0」です。育休・休職などで特定の従業員のデータが丸ごと存在しない期間を平均の対象から外したい場合は、「実在期間数」を選んでください

窓の左端の自動拡張: 移動窓集計を設定し、かつ日付バケットの元になっているフィールドに上記の相対期間トークンでソースフィルタが掛かっている場合、集計は自動的にフィルタの範囲より前のデータも取得して窓の計算に使います(例: 月バケット・窓6ヶ月・$LAST_N_MONTHS(6) なら、実際には11ヶ月分のデータを取得し、出力される行はフィルタどおり直近6ヶ月分に限られます)。これが無いと、出力範囲の最も古い月の平均が「窓の前半のデータが無いまま」計算されてしまいます。

  • 絶対値フィルタ(トークンを使わない、日付を直接指定した範囲)には、この自動拡張は効きません。指定した範囲だけが取得・出力されます(設定者が明示的に絞った範囲をそのまま尊重するため)。恒久的な移動窓監視をしたい場合は、必ず相対期間トークンを使ってください
  • 日付バケットの粒度とフィルタトークンの周期が一致しない場合(例: 月バケットに $LAST_N_WEEKS を使う等)、出力される最も古いバケットの集計値は「トークンが示す開始日ちょうどから」ではなく、その開始日が属する期間全体(月バケットなら月初〜月末)を含みます。バケット計算に必要な「期間として揃った」区切りにするための丸めです
  • プレビュー(次項)では取得件数の上限が本実行より小さいため、窓の自動拡張で取得件数が増えると上限に達しやすくなります。プレビューで件数が上限に達した表示が出た場合、窓の端の値は正確でない可能性があります
  • 結合(JOIN)を使うパイプラインでは、結合相手側のソースに日付の絞り込みがあると、窓の左端の自動拡張が取得した参照期間のデータが結合の時点で除外され、拡張の効果が打ち消されてしまうことがあります。移動窓集計を使うパイプラインでは、日付の絞り込みは日付バケットの元になっているソース側に置いてください

プレビュー(試し実行)

編集画面の「プレビュー」ボタンで、実際には実行せずに、出力される内容の先頭数十件を確認できます。特に「全件置換」のような取り消せない操作を実行する前の確認に便利です。選択肢(ドロップダウン等)の項目は、内部の値ではなく画面で見えるラベルで表示されます。

スケジュール

スケジュール
手動実行のみ
実行タイミング
管理画面から手動で実行
スケジュール
毎時
実行タイミング
毎時0分
スケジュール
毎日 0:00 / 6:00
実行タイミング
毎日指定時刻
スケジュール
毎週月曜 0:00
実行タイミング
毎週月曜日の深夜
スケジュール
毎月1日 0:00
実行タイミング
毎月1日の深夜

ソース/出力先アプリを削除したとき

  • パイプラインが参照しているアプリをゴミ箱に入れると、そのパイプラインは一時停止します(スケジュール実行はスキップされます)。一覧には「停止中(参照アプリがゴミ箱)」と表示されます
  • アプリをゴミ箱から復元すると、パイプラインは自動的に再開します(設定はそのまま保持されます)
  • アプリを完全削除すると、そのアプリを参照していたパイプラインも一緒に削除されます(スケジュールも解除されます)
  • アプリの削除確認画面に、そのアプリを使っているパイプラインの件数が表示されるので、削除前に影響を確認できます

ワークフローで締めたレコードは書き換えません

  • 出力先アプリでプロセス管理(ワークフロー)を使っている場合、編集がロックされたステータス担当者だけが編集できるステータスのレコードは、パイプラインが更新・削除の対象から外します(画面からの編集と同じ保護が働きます)
  • 「全件置換」でも、締められたレコードは削除されずに残ります。ただし重複を防げるのは、出力先アプリに「値の重複を禁止する(ユニーク)」を設定したフィールドがある場合のみです(そのフィールドの値が残ったレコードと衝突する新しい行は書き込まれず、残ったレコードが優先されます)。ユニークフィールドが無い場合は、残ったレコードと内容が重複する新しい行がそのまま追加されることがあります
  • 見送った回数は実行履歴の「スキップ(編集不可)」列に記録されます。実行自体は失敗扱いにはなりません
  • 締めたレコードにもパイプラインの結果を反映したい場合は、そのレコードのステータスを進める(または戻す)か、ステータスの編集制限を見直してください
  • アプリに「期間ロック」が設定されている場合も同様に、ロック対象の期間・対象者に該当するレコードは更新・削除(「全件置換」での再作成を含む)や新規作成の対象から外され、見送った回数は同じ「スキップ(編集不可)」列に合算されます

計算式で使える記法

種類
四則演算
書き方
フィールド名 演算子 値
売上金額 * 1.1
種類
括弧
書き方
( 式 )
(売上 - 原価) / 売上
種類
固定値(文字列)
書き方
"テキスト"
"東京支店"
種類
固定値(数値)
書き方
数値
100
種類
文字列結合
書き方
CONCAT(値, ...)
CONCAT(姓, " ", 名)
種類
最大値
書き方
MAX(値, ...)
MAX(0, 週合計 - 2400 - 日次超過)
種類
最小値
書き方
MIN(値, ...)
MIN(残数, 上限)
  • MAX・MIN は引数を2つ以上(可変長)指定できます。各引数には四則演算やネストした MAX/MIN を含む式も書けます
  • MAX・MIN・CONCAT は式全体がその関数呼び出し1つである必要がありますMAX(1,2) + 1 のように関数呼び出しを四則演算の一部に混ぜることはできません(保存時にエラーになります)。0 を下限にクランプする「按分」のような計算をしたい場合は、MAX(0, 実働 - 上限) のように関数の中に式を書いてください
  • 出力先に定数を書きたいときも計算項目を使います。項目のマッピングはソースの値をそのまま写すだけで、 固定値や式は書けません。式に "確定" のように文字列だけを書いた計算項目を作り、それをマッピング元に選んでください。 出力先に必須の選択肢項目(区分など)があるのにソース側に対応する値が無い場合、これをしないと 1 行も保存できません

複合キーの作り方(例: 従業員×月で集計する): 「更新または作成」のマッチキーは 1 フィールドしか指定できないため、2 軸(例: 従業員×対象月)で集計したい場合は、集計方法でグループ化した後の計算式に CONCAT(従業員, "_", 集計月) のような式を書いて複合キーを 1 フィールドに合成し、それをマッチキーに指定します。ユーザー選択などの値は id ベースの文字列に正規化されて連結されるため、表示名が同じでも実体が違う値が誤って同一キーになることはありません。日付バケット(上記参照)を使ったグループ化の場合は、バケットの参照(例: 対象日フィールドの参照)をそのまま 集計月 の位置に使えます。実例は計算フィールドの「勤怠月次集計を作る」レシピを参照してください。

ヒント

  • パイプラインの管理はシステム管理者のみが行えます
  • ソースアプリと出力先アプリは同じシステム内のアプリに限られます
  • 2回実行しても結果が重複しないようにするには「全件置換」または「更新または作成」モードを使用してください
  • 「更新または作成」のマッチキーには、出力先アプリで「値の重複を禁止する(ユニーク)」を有効にしたフィールドを指定してください
  • 「全件置換」は実行のたびに出力先を空にしてから書き込むため、出力先はそのパイプライン専用のアプリにすることをおすすめします
  • 「全件置換」は1回の出力が約2万件を超えると、安全のため実行を中止します。集計で件数を絞るか「更新または作成」をご利用ください
  • ソースフィルタで不要なデータを除外すると、処理が高速化されます。「ステータス=完了 かつ(金額≧10万 または 優先度=高)」のような条件グループ(入れ子の AND/OR)も設定できます(集計後の出力フィルタはグループ非対応で従来どおりの単純な条件のみです)
  • 1ソースあたり最大10万件まで取得されます。超過した場合は安全のため実行を中止します
  • 実行に失敗した場合、実行履歴にエラーの詳細(クリックで展開)が記録されます