複数のレコードをループして取得するワザ

フォローする

(著者:菊地 宏司)

今回は、複数レコードを繰り返し文を使って取得する方法についてご紹介します。

顧客マスタや従業員マスタなど、レコード数の多いアプリから一気にレコード取得したい時に使えるテクニックです。

それでは、早速ソースコードを見ていきましょう。

ソースコード

ソースコードの解説

まずは繰り返し処理に必要になる変数を作成します。

  • offset :レコード取得時の開始位置設定
  • records :GETで取得したレコードを格納する変数
  • loopendflg :繰り返し処理の終了を知らせるフラグ

 

次は対象のアプリからレコードを繰り返しで取得するためのクエリ文を作成します。
今回は「offset個目からレコード番号の昇順で上限100個を取得する」というクエリを設定しています。
※100個はkintoneから取得できるレコード数の上限値です。

このクエリを設定してHTTPRequestで同期による処理を行います。

 

 

次に取得したレコードを配列に格納し、取得したレコード分offsetを進めます。
これを繰り返して、取得したレコード数が0件になったところでloopendflgをtrueにして繰り返し処理を終了します。

以上で繰り返し文を使ったレコードの取得は終了です。
色々なシーンで使えるテクニックなのでぜひチャレンジしてみてください。

 

 

このTipsは、2014年4月版で確認したものになります。

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

Avatar
Yuta Onishi

いつも参考にさせて頂いております。
質問なのですが、リクエストとしてXMLHttpではなく
kintone.api を用いた場合、この手法はどのように書き換わるでしょうか。

Avatar
にしかわ

Yuta Onishiさん
試していないですがkintone.apiは非同期リクエストのため、本Tipsをkintone.apiで実行しても正常に処理できないかもしれません…

Avatar
Yuta Onishi

にしかわ様

ご回答ありがとうございました。
やはり非同期ではうまく動かないようです。

重ねて質問させて頂きます。
こちらのTipsはGETメソッド時の方法でしたが、
PUTメソッドの場合に100件ずつ更新していく方法はありますか?

Avatar
カキ氷

Yuta Onishi san
こちらを参考ににして、100件ごとにputするようにしてみてはいかがでしょうか。
繰り返し文の使い方などは別途JSのサイトを見てご理解したほうがいいかと思います。
https://cybozudev.zendesk.com/hc/ja/articles/201941784#step2

ログインしてコメントを残してください。
Powered by Zendesk