勤怠管理用のアプリを作っています。
一覧をカスタマイズでレイアウトを作って表示させているのですが、表示に利用するレコードのデータとして app.record.index.show で受け取れる event.records を使いたいと思っています。
基本的にはできているんですが、ユーザー操作でレコードの表示件数や表示ページを変更してしまうと当然 event.records も変わってしまい意図した動作を保証した仕様にできません。
リクエスト内容などをみて、updatePersonalSettings.json をたたいてリロードするなど非推奨であろう方法はいくつか試しておりますが、表示件数などのユーザーの設定はグローバルに影響するものですしそういった意味でも避けたいと思っています。
app.record.index.show でレコードを取得するクエリをあらかじめ指定することができればベストなのですが、何か方法はありますでしょうか。
hamuさん
意図がオールクリアな状態ではないですが、・・・
まず、event.recordsがマッチしないとなれば、レコード取得APIの利用が良いでしょうと。
クエリの指定は、意図に合っているかがわかりませんが、kintone.app.getQueryCondition()等を利用して、一覧の設定から取得して利用する方法等は有用だったりします。
hamu さん
cstapの瀧ヶ平です。
調べたところ現状では一覧のレコード表示件数を変更する方法は非推奨の方法以外見つからなかったため、
kintone.app.getQuery().match(/limit\ (\d+)/)[1]
の様にしてqueryからlimitの数値を取得して、 目的の数値であればそのままevent.recordsを使い、そうでなければ
kintone.app.getQuery().replace(/limit\ (\d+)/, "limit {{目的の数値}}")
によってクエリを書き替えてREST APIのレコードの一括取得をし、取得したレコードを利用する、というような対応をするしかなさそうです。
回答ありがとうございます。
わかりづらくてすみません。
一覧絞り込み・ソート設定、でlimitとoffsetの設定ができれば、という感じです。
これらは一覧の表示ページで表示件数の選択やページ切り替えの操作で行うものという理解ですが、管理者側で表示時の設定を決めておく方法はありますでしょうか?
>瀧ヶ平さん
回答有り難うございます。
やはりAPIを使うべきところですよね。
勤怠の締め日などに利用が集中する可能性を考えて、表示時のAPIリクエスト数を節約したいというのがそもそもの動機でした。
運用方法を考えたほうがよさそうな感じですね。