公開日:
皆さんこんにちは、築山です。
「アイドルオタクのためのシステム開発」の執筆がなかなか進まないまま、今月も順番が回ってきてしまいました。
「何を書こうかなぁ。。。」と思っていたところに、たまたま難解な相談をいただいたので自身の検証メモとともに記事にしてみました。
要件:1,000件の明細が含まれる請求書を出力したい
相談いただいた要件は「明細行が1,000件以上の請求書を出力したい」というものでした。
通常、kintone において明細行を扱う場合には、「テーブル」の機能が使われがちです。しかし、kintone のヘルプにも記載があるようにテーブルは大量データ(目安:1つのテーブルにつき、10フィールドかつ100行まで)の利用は推奨されておりません。

カスタマインのExcel/PDF 出力機能ではテーブルを明細として出力することはできるため技術的には可能なのですが、テーブルに1,000件含まれているとそもそもそのアプリがとても重たくなってしまうので他の方法で考えたいと思います。
もう1つの手段として考えられるのが「関連レコード一覧」です。アプリ構成としては以下のイメージで「取引先社名」の一致するレコードを「関連レコード一覧」として表示しています。

では、この「関連レコード一覧」を帳票に出力する方法で考えてみます。
カスタマインでは「関連レコード一覧」のデータも帳票内に出力することが可能です。
しかーーーーし!制限事項のページを見てみると、

「関連レコード一覧は500レコードまで出力可能です。501レコード以上は出力できません。」という記載があります。
そうです、カスタマインの Excel/PDF 出力機能では、関連レコード一覧は500件までしか出力ができません。
念のため、試しにやってみます。
帳票テンプレート

カスタマイズはこんな感じ

これで実行してみると、結果はこんな感じ。
(497件までは省略)

うん、そうだよね。500件までって書いてあるもんね。
やはり、501件目以降のレコードは出力されませんでした。
どうやったら出せるのか。。。
落ち着いて考えてみます。
カスタマインでは、関連レコード以外の出力では 500件という制約はありません。たとえば、一覧形式で条件に合致した全レコードを帳票に出そうと思ったときには 500件以上のデータがあっても問題なく出力可能です。
ということは、「関連レコードとして出力すると 500件の制限に引っかかってしまうけれども、関連レコードではないレコードとして出力するのであれば制限にかからない」(禅問答みたいだな)ということとなります。
そこで工夫をします。
まず、関連レコード以外のデータを出力する処理を作成します。

カスタマイズ例がこちら

アクション46 で指定している帳票テンプレートがこちら

このテンプレートでポイントとなるのが、画像内赤枠の部分です。ここは、後続の処理で関連レコード一覧を出力したいのですが今回の処理では何も出力しません。赤枠内のように記載することで、今回の出力時には「$FOREACH」「$END」などという gusuku コマンドを命令文とみなさず、そのまま文字列として出力します。
上記までの処理が完了すると、「関連レコード以外」の値を出力したExcel ファイルがそのレコードの添付ファイルフィールド(関連レコード出力用テンプレート)に保存されます。
出力された Excel ファイルの内容が以下の通り。

緑の枠で囲われた部分は帳票として出力された部分です。赤枠で囲われた部分は文字列として出力し、これから動かすカスタマイズで関連レコードを出力するための設定です。
では、この出力されたファイルをテンプレートとして帳票の出力を行います。
そのためのカスタマイズがこちら。

このカスタマイズは大して難しいことはやっていないのですが、ポイントとして 58 番のアクションは「関連レコード一覧の条件でレコードを取得する」ではいけません。「条件を組み立ててレコードを取得する」を使用して、関連レコード一覧の設定と同様の設定をするようにしてください。
できた!!!
、、、ということで出力された帳票を見てみましょう。

1,000行の明細を出力するのは良いんですが、どうやって解読するんでしょうか…
注意点
- 大量のレコードを出力するので、当然処理に時間がかかります
- 作り方によりますが、kintone の API リクエスト数を大量に消費する可能性があります
- 出力された結果を見るのも大変です
投稿者プロフィール

- gusuku シリーズのエンドユーザー様への提案・パートナー様への支援をメインに活動しています
最新の投稿
gusuku2025年9月1日500件を超える関連レコードを帳票に出力したい!
gusuku2025年7月31日“伝えたつもり”から卒業する─商談が動き出す共通理解のつくり方
gusuku2025年6月30日アイドルオタクのためのシステム開発 vol.4
gusuku2025年5月30日kintone の停電対策を考える