この記事では、gusuku Everysite のページ内処理で、kintone の1レコードの添付ファイルをダウンロードするページの作成方法を紹介します。
なお、当記事で紹介している設定は、kintoneの添付ファイルフィールドに1ファイルのみが添付されている事を前提としています。
添付ファイルフィールドに2ファイル以上が添付されている場合は、先頭の1ファイルのみがダウンロードされますので、その点ご留意ください。
ページの画面例
このボタンを押すと、kintoneの1レコードの添付ファイルが1つダウンロードされます。
ボタンは「アイコン付きボタン(塗りつぶし)」、アイテムID、アイテム名、ラベルはすべて「ダウンロード2」です。
エブリサイトで表示するkintoneのレコード
レコードを取得するためのキーとなる文字列(1行)フィールド「コード」と、添付ファイルフィールド「添付ファイル」を用意します。
両フィールドとも、フィールド名とフィールドコードは同じです。
ページ内処理1(シンプルな例)
kintoneの添付ファイルのダウンロードに最低限必要な処理は下記です。
やること「クエリで条件を指定して kintone からレコードを取得する」で添付ファイルが添付されたレコードを取得します。
例では、「コード」フィールドの値が「A001」のレコードを取得しています。
条件は「ボタンを押した時」です。
kintoneから取得したレコードの添付ファイルを取得します。
やることは「kintone添付ファイルを取得する」を使用し、「添付ファイルフィールドまたはファイルキー」には下記のように指定します。
= $22[0].添付ファイル
※アクション22で取得したレコードの1レコード目の添付ファイルを取得する指定方法です。
なお、1MBを超えるファイルをダウンロードする可能性がある場合は「キャッシュが無効になる日時」を指定する必要がありますのでご注意ください。
最後に、アクション23で取得した添付ファイルをダウンロードします。
やることは「添付ファイルをダウンロードする」です。
以上で設定は完了です。
ページ内処理2(エラーチェックとファイル名表示を含めた例)
kintoneのレコードが取得されなかったり、添付ファイルが添付されていなかった場合のエラーチェックを含めた例も紹介します。
また、ファイル名をテキスト「ファイル名」に表示します。
この例は、
の構成になっています。
ファイル名の表示とボタンの有効・無効化
条件「ページを表示した時」のレコードの取得はシンプルな例と同様に行います。
やること「kintone添付ファイルを取得する」の条件「数値が条件を満たすならば」で count 関数 を使用して、
count($1):アクション1で取得されたレコード数
count($1[0].添付ファイル):アクション1で取得したレコードの1レコード目の、添付ファイルフィールドに添付されたファイルの数
をカウントし、両方とも1以上であれば正常にファイルが取得できる状態とみなして、下記のアクション2のように設定します。
このような設定は、アクション1でレコードが取得されなかったり、添付ファイルが添付されていない場合にエラーを表示したい場合などに利用できます。
また、やること「kintone添付ファイルを取得する」のアクションの結果には添付ファイルの情報が含まれますので、やること「表示アイテムの内容をセットする」で、
= $2[0].filename
のように指定すると、添付ファイルの1つ目のファイルのファイル名を取得できます。
取得可能な値は、やること「kintone添付ファイルを取得する」のドキュメントの「結果値」をご確認ください。
次に、アクション1でレコードが取得されなかったときの処理です。
ダウンロードボタンを無効化して押せないように設定し、テキストアイテム「ファイル名」に『※レコードが見つかりません』と表示します。
続いて、アクション1でレコードは取得されたものの、添付ファイルは添付されていなかった時の処理です。
ダウンロードボタンを無効化して押せないように設定し、テキストアイテム「ファイル名」に『※ファイルは添付されていません』と表示します。
ファイルのダウンロード
ファイルのダウンロードはシンプルな例と同様です。
画面が表示されてからkintone側でレコードの削除や添付ファイルの削除などが行われるケースを想定して、アクション15にはレコード数と添付ファイル数のチェックを設定しています。
チェックした結果、ファイルが取得されなかった場合にメッセージを表示したい時は、ボタンの無効化のアクションを参考に設定ください。
以上で設定は完了です。













