お世話になっております。
POSTで別アプリへの一括登録させるJSを作り、動作したまでは良かったのですが
別アプリで重複禁止の項目があると、レコード追加後に再びPOSTしようとしても400BadRequestが返ることに気付きました。(当然ですが)
ここで、①重複しているデータが存在するレコードがある場合はそのレコードを上書きしたいと思っています。
あるいは、②重複しているデータが存在するレコード以外を登録し、
重複している分はfilterで抽出して更新用のPOST(PUT?)で更新したいと思っています。
①、②のいずれかが可能であればご教授頂けると幸いです。
6件のコメント
FM さん
kintoneUtility.rest.upsertRecords を使うといいと思います。
「kintone Utility Library for JavaScript」の使い方
rex0220 様
ありがとうございます。そのようなライブラリがあったことを初めて知りました…
導入し、サンプルコードを自アプリ用に書き換えて動くことが確認できました。
恐縮ながらもう一点質問なのですが、サンプルコードはJS側で「UpsertするUpdateKeyの値」と
「Upsertする項目の値」を直接指定しています。
これを自アプリに登録されているレコードの値に書き換えたいのですが、どう書けばよいでしょうか…
例
Aアプリ フィールド:UK、文字列1
Bアプリ フィールド:UK、文字列1
・Aアプリに「UK」が「0001」のレコードがあり、Bアプリに「UK」が「0001」のレコードがない場合
⇒BアプリにAアプリの「UK」が「0001」のレコードを追加する
・Aアプリに「UK」が「0002」のレコードがあり、Bアプリに「UK」が「0002」のレコードがある場合
⇒Bアプリの「UK」が「0002」のレコードをAアプリの「UK」が「0002」のレコードの内容に更新する
サンプルコードのvar records内を書き換えるのだとは思いますが、お互いのアプリのレコードを結びつける?書き方が分かりません…
こんな感じでいかがでしょうか?
切り貼りしただけですので、検証をお願いします。
rex0220 様
回答ありがとうございます。
せっかく回答して頂いたのですが、こちらの質問の仕方が悪く、
間違った意図の質問になってしまいました。申し訳ありません。
誠に勝手ながら、前回の質問は一旦無かったことでお願いします…。
色々な記事を参考にして、下記のようになったのですが
kintoneUtility.rest.upsertRecordsのアラートメッセージでCannot read property 'value' of undefined
と出てしまいました。
alert(putRecords[1].record.文字列.value);とすると正しい値が表示されるので、putRecordsの取得はできていると思うのですが…
たぶん、UpdateKey は、updateKey 小文字の誤りだと思います。
rex0220 様
ご回答ありがとうございます。
まさにご指摘の通りでした…無事動くことを確認できました。
本当にありがとうございました。