2023/04/04 13:04
JSカスタマイズで複数のレコードの追加と更新を行うときのコツを教えてください。
例えば500件のレコードが既に登録されていたとして、そこにAPIで外部から300件のデータを流し込みたいとします。
300件のデータのうち200件は既存レコードの更新で100件は追加分としたときの効率の良い追加または更新の処理の作り方を考えています。
300件のデータの中でどれが更新分でどれが追加分かが予め判別できていない場合は以下の流れで処理を作っています。
- 既に登録されているレコードを全て取得する
- 取得した500件とデータ300件を突合して更新分と追加分にデータを仕分けする
- 200件のデータを更新する
- 100件のデータを追加する
APIを使って一度にレコードの取得や更新などを行えるのは最大で100件までなので、このやり方をしてしまうと取得だけで5回、更新で2回、追加で1回で最低でも8回もリクエストしてしまいます。
1日に1アプリ1万回までしかAPIを扱えないので、少ないレコード数ならいいですが、大量のデータを扱う場合はすぐに制限に引っかかってしまうのと、処理事態も冗長的と感じているのでもっと効率のいいやり方があるのではないかと考えています。
しかしWebで検索してみましたが、いい情報を見つけることができませんでした。
皆さんがどのようにされているか、ぜひ教えていただけないでしょうか。
ミュートしたユーザーの投稿です。
投稿を表示私だったらカスタマイン使いますが、JSだとこういうのもあります
https://github.com/kintone/js-sdk/tree/master/packages/rest-api-client
ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示おそらく1〜2の流れあたりをもっとなんとかできないかということかと想像します。
データ取得については500件ずつ取得できますので、減らせるとしたらそこだけのように感じました。データ300件が更新かどうかを事前に判定することが困難なのであれば、kintoneのJS APIの場合upsertができないので他に方法はなさそうです。
別な観点では、300件の更新/追加処理について値が変化してなければ処理しない、などの判定をしてなるべく呼出を減らすなどの案もあるかと思います。
きったんさんご提示のようにJavaScriptの開発に関しては developer network の方が有識者が多い可能性が高いかと思います。
ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示それはJavaScriptでやらないといけないのでしょうか。
JavaScriptが必須なのであればcybozu developer networkで質問されてはいかがでしょう。
キンコミはどちらかというとカスタマイズではない方法で運用している方が多いような気がします。
-krewData
-カスタマイン
-エクセル
この辺りでコネコネするのがキンコミ的かもしれません😁