この記事では、シンプルテーブルで表示したkintoneレコードの添付ファイルを、ダウンロード可能にする設定方法を紹介します。
エブリサイトでページを設定する方法として、「ページ内処理」と「ページ生成時処理」の2つがあります。
ページの用途に合った方法の記事を参照し、設定してください。
各方法の違いについては、次のリンク先を併せて参照してください。
動画:gusuku Everysite における「ページ生成時処理」と「ページ内処理」の違い・使い分け
記事:ページ生成時処理とページ内処理 ・ログイン・接続設定について
・【ページ生成時処理】テーブル表示したkintoneレコードの添付ファイルをダウンロードする(本記事)
・【ページ内処理】テーブル表示したkintoneレコードの添付ファイルをダウンロードする
完成イメージ
シンプルテーブルにkintoneのレコードを表示し、ダウンロードボタンを設定します。
ダウンロードボタンを押した際に、別タブで添付ファイルを表示します。
注意事項
記事公開時点では、以下の設定には対応していません。
添付ファイルが空の場合のボタンの非表示制御
複数添付ファイルへの対応
そのため、添付ファイルがない場合や複数添付されている場合にダウンロードボタンを押すと、ファイルがダウンロードされる代わりに同じページが別タブで開きます。
エブリサイトで表示するkintoneアプリ
画面デザインイメージ
設定の流れ
接続設定-kintoneを追加する
ページ生成時処理を設定する
画面デザインを設定する
設定の詳細
*今回の設定に関係しない項目についての説明は割愛します。
1.接続設定-kintoneを追加する
kintoneアプリでAPIトークンを生成し、エブリサイトに接続設定-kintoneを追加します。
2.ページ生成時処理を設定する
この設定では、ページが生成されるタイミングでkintoneから対象のレコード一覧をまとめて取得し、レコードを1件ずつチェックする処理を行います。
各レコードにおいて「添付ファイルが1つだけ存在する」という条件を満たした場合にのみ、対象のファイルをエブリサイト上で公開(ダウンロード可能な状態に)します。
2-1.kintoneからレコード取得を取得する
やること「クエリで条件を指定して kintone からレコードを取得する」
取得元アプリ:アプリIDを入力します。
kintone接続設定:1で設定した接続設定を選択します。
検索条件「レコード番号 > 0」
※ここでは全件取得のため、レコード番号 > 0 としています。
条件「処理を開始した時」
2-2.レコードを1件ずつ処理するループを開始する
やること「レコードのリストからレコードを取り出す」
※この時点ではまだ4,6のアクションが存在しないため、まずは「1」だけを選択して進めてください。すべての設定が終わった後、最後にここに戻って「4,6」にチェックを入れます。
2-3.添付ファイルが1つの場合、添付ファイルを取得する
ループ中のレコードに添付されているファイルが「1つだけ」であるかをチェックし、条件を満たした場合に添付ファイルを取得します。
やること「kintone添付ファイルを取得する」
添付ファイルフィールドまたはファイルキー「=$2.添付ファイル」
条件「リストから要素を取り出した時」
追加条件「数値が条件を満たすならば」
比較する値(A)「=count($2.添付ファイル)」
条件「等しい」
比較する値(B)「1」
2-4.取得した添付ファイルを公開する
やること「添付ファイルを公開する 」
条件「他のアクションの実行が完了した時」
2-5.添付ファイルが1つでないの場合は、スキップする
やること「なにもしない」
条件「リストから要素を取り出した時」
追加条件「数値が条件を満たすならば」
比較する値(A)「=count($2.添付ファイル)」
条件「等しくない」
比較する値(B)「1」
3.画面デザインを設定する
画面デザインでは、シンプルテーブルウィジェット内に「件名」「資料名」を配置し、添付ファイルをダウンロードするための「リンクボタン」を設置します
以上で、設定は完了です。
ページをテストして、動作を確認してみてください。
さらに理解を深めるために
今回の手順では、kintoneから全てのレコードを取得した上で、添付ファイルが空や複数の場合にエラーが起きないように分岐を組みました。
しかし、あらかじめ「添付ファイルが1つだけあるレコード」に絞り込んで取得すれば、よりシンプルな構成にすることが可能です。
1. ページ生成時処理の変更点
・検索条件の変更: > kintoneアプリ内にファイルの個数を記録する「添付ファイル数」フィールドがあると想定し、検索条件を以下のように変更します。
「添付ファイル is not empty and 添付ファイル数=1 」
・分岐処理の削減: > あらかじめ添付ファイルが1つだけあるレコードのみを取得しているため、アクション3および6で行った「追加条件(条件を満たすならば等)による分岐設定」がすべて不要になります。
2. 画面デザイン設定の変更点
・リンク先URLの簡素化: > [列になるアイテム]のリンクボタン(塗りつぶし)において、リンク先URLの式を「=$4」に簡素化できます。
【簡素化できる理由】
事前にkintone側でファイルが1つのレコードだけに絞り込まれているため、エブリサイト側で if(count(添付ファイル)=1, ...) という判定を入れる必要がなくなるためです。
また、今回の設定手順:「2.ページ生成時処理を設定する」では、取得したレコードに対して1行ずつ処理するために、やること「レコードのリストからレコードを取り出す」、条件「リストから要素を取り出した時」を使用し、設定しました。
これは、データの塊(リスト)を上から1行ずつ順番に読み込み、リストの最後まで同じ処理を自動で繰り返す(ループ処理する)ための方法です。
以下のリンク先は、カスタマインに関する参考記事ですが、エブリサイトでもループ処理の考え方や仕組みはまったく同じとなります。より詳しく仕組みを理解したい方は、ぜひあわせてご覧ください。
エブリサイトのドキュメントページやサポートページもぜひご活用ください。














