カスタマイズ

添付ファイルをまとめてダウンロードする

概要

添付ファイルフィールドにセットされているすべてのファイルを1つのzipファイルにまとめて、ユーザーのブラウザーでダウンロードします。

使い方

この「やること」を実行すると、「添付ファイルをダウンロード中…」というダイアログが表示されて、ダウンロードが始まります。ダウンロードが完了すると「添付ファイルをダウンロード中…」ダイアログは閉じられて、ブラウザー標準のダウンロードでダウンロードされます。

ダウンロードされるzipファイルは無圧縮状態となります。

zipファイル内のフォルダー階層は「zipファイル内の階層」で設定可能ですが、初期設定の場合は以下のようなフォルダー階層になります。

  • 添付ファイルフィールドがテーブル外のフィールドの場合
    • レコード番号/フィールドコード/
  • 添付ファイルフィールドがテーブル内のフィールドの場合
    • レコード番号/フィールドコード/行番号/
    • 行番号は最初の行が1になります。

同じフォルダー内でファイル名が重複した場合、ファイル名の末尾に(2)(3)…といった連番がつけられます。

どのレコードにも添付ファイルが1つも添付されていなかった場合、「添付ファイルがひとつもありませんのでzipファイルはダウンロードされませんでした。」というエラーになり、ダウンロードは行われません。

設定するパラメーター

「レコード」「添付ファイルフィールド」「zipファイル名」「zipファイル内の階層」を設定します。

レコード

ダウンロードしたい添付ファイルを持っているレコードを取得したアクションを選択します。

このパラメーターは省略可能です。省略した場合は現在の画面のレコードが対象になります。例えば詳細画面ならばその画面で表示しているレコード、一覧画面ならば一覧に表示されているすべてのレコードが対象になります。

実行時にレコードが1行もなかった場合はエラーになります。

添付ファイルフィールド

zipファイルに含める添付ファイルフィールドを「レコード」のアプリから選びます。複数選択可能ですが、順序は指定できません。

添付ファイルフィールドのみ選択可能です。

テーブル内のフィールドも選択可能です。テーブル内のフィールドを指定した場合、そのテーブル内のすべての行の添付ファイルがzipファイルに入ります。

zipファイル名

ダウンロードするときのファイル名です。

初期値は「添付ファイル_${format(now(), ‘YYYYMMDDHHmmss’)}.zip」となっています。この後半の部分にある ${format…} はアクション実行時の日時をファイル名につける、という意味になります。日時をファイル名につけたくない場合は、この部分を削っても構いません。

zipファイル内の階層

標準では「使い方」で説明した通りのフォルダー階層となりますが、異なる階層構造にしたい場合に、このパラメーターを設定します。

このパラメーターでは式が使えますが、通常の式と異なります。式中のフィールドコード記述は、現在の画面のレコードではなく「レコード」パラメーターで指定したレコードのフィールドを参照します。

例)

${申請月}/${申請者.code}

上記例では、添付ファイルの入っていたレコードの「申請月」フィールドと「申請者」フィールドの code 値をもとにフォルダーを作成します。 例えば 2026年10月の suzuki さんの添付ファイルは 202610/suzuki に格納されます。

この式では、以下の特殊な値が使えます。

  • $id … 保存対象の添付ファイルが入っているレコードのID
  • $field … 保存対象の添付ファイルが入っているフィールドのフィールドコード
  • $tableRow … 保存対象の添付ファイルが入っているフィールドがテーブル内フィールドだった場合、その行番号
    • 添付ファイルフィールドがテーブル外である場合は、$tableRow は空文字列になります。

式を使用せずに固定値にもできますが、その場合はすべての添付ファイルがその固定フォルダー内に配置されます。

このパラメーターを空にした場合は「使い方」で説明した階層構造になります。設定方法がよくわからない場合は、初期状態のままにするか、空にしておくことを推奨します。

制限事項

  • レコード追加画面、レコード編集画面では使用できません。

  • 「添付ファイルをダウンロード中…」は画面操作を行うことができません。

  • ダウンロードできるファイルサイズや数の上限は、ユーザーのPC・スマートフォンの処理能力に依存します。処理能力を超えた場合に出るエラーの内容は、ブラウザーに依存します。エラーが出る場合、ダウンロードするサイズや数を減らしてください。

関連記事