Job Runner

レコードを日付毎に束ねる

概要

レコードを指定のフィールドで日付値が同じもので束ねてグループ化し、新しいレコードに変換します。月、週でのグループ化も可能です。

使い方

キーとなる日付、日時フィールドでレコードを束ねて、別のレコード形式にマッピングします。単純に値の等しさで束ねるのではなく、その日付、日時が表す日や週、月で束ねることが可能です。

具体例で説明します。

変換例

上図のように、変換前の売上アプリでは1回の売上が1レコードで管理されており、売上が発生した時刻が記録されています。これを日別の件数、合計金額に変換したいものとします。

まず変換元のレコードを事前に取得しておき、それを「変換元レコード」パラメーターに設定します。「日付フィールド」は「売上時刻」、「単位」は「日」を選択します。

変換マッピングでは、以下のように集計関数を使用して束ねたレコード内でフィールド値を集計することができます。この例ではsum関数count関数を使用しています。他にどのような集計関数があるかは、関数一覧をご覧ください。

注意しなければならないの日付の扱いです。「受付時刻」には束ねたレコードの「受付時刻」が全て入っています。従って、この場合は代表で1つの値を取得し、日付形式になおしてセットする必要があります。

セットする値 セット先フィールド
= format(受付時刻[0], ‘YYYY-MM-DD’) 日付
= count(レコード番号) 売上数
= sum(金額) 売上合計

この例では、受付時刻が同じ日のレコードを1つのグループにまとめ、それを変換先の1レコードにマッピングします。この例では「2022-03-01」「2022-03-02」という2つの日付グループができるので、変換先は2レコードになります。

アクションの実行結果は変換後のレコードになります。このレコードはまだどこにも保存されていないことに注意してください。自動的に保存されることもありません。変換後のレコードを保存するには「レコードをもとにレコードを追加する」等につないでください。

設定するパラメーター

「変換元レコード」「日付フィールド」「単位」「変換先アプリ」「変換マッピング」を設定します。

変換元レコード

変換元レコードを取得したアクションを選択します。

「やること」の性質上、複数のレコードを含んでいなければ意味がありません。「レコード1行が準備できた時」でつないだ後だとレコードが1行になってしまい、変換の効果がなくなってしまいますので注意してください。

日付フィールド

変換元レコードでキーとなる日付フィールドを選択します。

選択可能なフィールドタイプは以下です。

  • 日付
  • 日時

テーブル内のフィールドは選択できません。

単位

束ねる単位を指定します。

日単位、週単位、月単位、年月単位があり、週単位は週の開始を月曜とするか日曜とするかを選べます。

月単位の場合、異なる年の同じ月も束ねられます。例えば2023年1月と2024年1月はどちらも「1月」として束ねられます。異なる年を別々に束ねたい場合は「年月」を選択してください。

「日付フィールド」が日時フィールドだった場合、日付の解釈は「タイムゾーンをセットする」でセットしたタイムゾーンに基づきます。「タイムゾーンをセットする」を使用していない場合は日本時間で解釈します。

変換先アプリ

変換先のアプリを指定します。

このアプリにレコードが保存されるわけではありませんが、変換先のフィールド一覧を決めるために必要です。

変換マッピング

変換マッピングを入力します。

このマッピングで変換元のフィールド値を参照する場合、束ねたレコード全てのフィールド値を含む配列となります。キーとなっている日付フィールドも配列になっているので注意が必要です。

レコード取得条件の発生有無

条件 発生有無
レコード1行が準備できた時 発生します
レコード全行が準備できた時 発生します

「レコード1行が準備できた時」は変換先レコード1行につき1回発生します。

変換元レコードが1行もなかった場合はどちらも発生しません。

関連記事