この記事では、シンプルテーブルで表示したkintoneレコードの添付ファイルを、ダウンロード可能にする設定方法を紹介します。


エブリサイトでページを設定する方法として、「ページ内処理」と「ページ生成時処理」の2つがあります。

ページの用途に合った方法の記事を参照し、設定してください。


各方法の違いについては、次のリンク先を併せて参照してください。

動画:gusuku Everysite における「ページ生成時処理」と「ページ内処理」の違い・使い分け

記事:ページ生成時処理とページ内処理 ・ログイン・接続設定について


・【ページ生成時処理】テーブル表示したkintoneレコードの添付ファイルをダウンロードする(本記事)

【ページ内処理】テーブル表示したkintoneレコードの添付ファイルをダウンロードする


完成イメージ

シンプルテーブルにkintoneのレコードを表示し、ダウンロードボタンを設定します。

ダウンロードボタンを押した際に、別タブで添付ファイルを表示します。


注意事項

記事公開時点では、以下の設定には対応していません。

  • 添付ファイルが空の場合のボタンの非表示制御

  • 複数添付ファイルへの対応

そのため、添付ファイルがない場合や複数添付されている場合にダウンロードボタンを押すと、ファイルがダウンロードされる代わりに同じページが別タブで開きます。


エブリサイトで表示するkintoneアプリ



画面デザインイメージ


設定の流れ

  1. 接続設定-kintoneを追加する

  2. ページ生成時処理を設定する

  3. 画面デザインを設定する


設定の詳細

*今回の設定に関係しない項目についての説明は割愛します。


1.接続設定-kintoneを追加する

kintoneアプリでAPIトークンを生成し、エブリサイトに接続設定-kintoneを追加します。

kintoneアプリでAPIトークンを生成し、APIトークンをコピーして、[保存]→[アプリを更新]まで行います。

アクセス権

レコード閲覧

※画像内のアプリ名等はサンプルです。

エブリサイトの画面に戻り、接続設定-kintoneを追加します。

接続設定名

添付ファイルアプリ(閲覧)

認証可否

認証なしで利用可

ドメイン

ご利用中のドメインを入力

kintoneアプリ

アプリIDを入力

※https://(サブドメイン名).cybozu.com/k/xxx/ のxxxの部分です

kintoneアプリ

コピーしたAPIトークンをペースト


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.画面デザインを設定する

画面デザインでは、シンプルテーブルウィジェット内に「件名」「資料名」を配置し、添付ファイルをダウンロードするための「リンクボタン」を設置します 

ウィジェット

シンプルテーブル

列になるアイテム

テキスト

テキスト

リンクボタン(塗りつぶし)

表示するレコード

(アクション)1

[列になるアイテム]テキスト:パラメーター(1つ目)

アイテムID

件名

アイテム名

件名

テキスト

=件名

※kintoneのフィールドコードを設定します

[列になるアイテム]テキスト:パラメーター(2つ目)

アイテムID

資料

アイテム名

資料

テキスト

=公開用資料名

※kintoneのフィールドコードを設定します

[列になるアイテム]リンクボタン(塗りつぶし):パラメーター

アイテムID

ダウンロードボタン

アイテム名


リンク先URL

=if(count(添付ファイル)=1,$4)

ラベル

ダウンロード


以上で、設定は完了です。

ページをテストして、動作を確認してみてください。


さらに理解を深めるために

今回の手順では、kintoneから全てのレコードを取得した上で、添付ファイルが空や複数の場合にエラーが起きないように分岐を組みました。

しかし、あらかじめ「添付ファイルが1つだけあるレコード」に絞り込んで取得すれば、よりシンプルな構成にすることが可能です。


1. ページ生成時処理の変更点

・検索条件の変更: >   kintoneアプリ内にファイルの個数を記録する「添付ファイル数」フィールドがあると想定し、検索条件を以下のように変更します。

「添付ファイル is not empty and 添付ファイル数=1 」

・分岐処理の削減: >   あらかじめ添付ファイルが1つだけあるレコードのみを取得しているため、アクション3および6で行った「追加条件(条件を満たすならば等)による分岐設定」がすべて不要になります。


2. 画面デザイン設定の変更点

・リンク先URLの簡素化: >   [列になるアイテム]のリンクボタン(塗りつぶし)において、リンク先URLの式を「=$4」に簡素化できます。

【簡素化できる理由】

事前にkintone側でファイルが1つのレコードだけに絞り込まれているため、エブリサイト側で if(count(添付ファイル)=1, ...) という判定を入れる必要がなくなるためです。 


また、今回の設定手順:「2.ページ生成時処理を設定する」では、取得したレコードに対して1行ずつ処理するために、やること「レコードのリストからレコードを取り出す」、条件「リストから要素を取り出した時」を使用し、設定しました。

これは、データの塊(リスト)を上から1行ずつ順番に読み込み、リストの最後まで同じ処理を自動で繰り返す(ループ処理する)ための方法です。

以下のリンク先は、カスタマインに関する参考記事ですが、エブリサイトでもループ処理の考え方や仕組みはまったく同じとなります。より詳しく仕組みを理解したい方は、ぜひあわせてご覧ください。


エブリサイトのドキュメントページサポートページもぜひご活用ください。