レコードを指定のフィールドで日付値が同じもので束ねてグループ化し、新しいレコードに変換します。月、週でのグループ化も可能です。
キーとなる日付、日時フィールドでレコードを束ねて、別のレコード形式にマッピングします。単純に値の等しさで束ねるのではなく、その日付、日時が表す日や週、月で束ねることが可能です。
具体例で説明します。
上図のように、変換前の売上アプリでは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行もなかった場合はどちらも発生しません。