「複数条件でアプリ内を検索したときに、該当レコードが1件なら更新したい。」
こちらを実装したいのですが、該当レコードのレコード番号(ユニークキー)を取得できたあと、レコード番号を更新処理に渡せず苦戦しております。
どうぞお知恵をお貸しください!
kintoneの問題というよりは変数の宣言やAPIの呼び出し方のような気がしますので、場違いかもしれませんが自己解決ができないため、アドバイスお願いいたします!
(省略)
let recordID = 0;
//① レコードを検索して
kintone.api(kintone.api.url(‘/k/v1/records.json’, true), ‘GET’, body, (resp) => {
:
if(resp.records.length === 1){
// 更新対象のレコードありIDを保存
recordID = resp.records[0].ID.value; //★更新処理に受け渡したい
}
});
//② 特定したレコードを更新する。
kintone.api(kintone.api.url(‘/k/v1/record.json’, true), ‘PUT’, body, (resp) => {
:
alert(recordID); // ★値が空になっていてレコードが見つからない
});
small wave様
REST APIを使用してされるなら、メソッドチェーンを使って引数で引き渡してあげるのがいいのではないかと思われます。
コードテストしていないですが、このような形でできるかと思われます。
let recordID = 0;
//① レコードを検索して
return kintone.api(kintone.api.url('/k/v1/records.json', true), 'GET', body).then((resp) => {
if (resp.records.length === 1) {
// 更新対象のレコードありIDを保存
recordID = resp.records[0].ID.value; //★更新処理に受け渡したい
return recordID;
}
}).then((recordID) => {
if(recordID === 0)return;
const body2 = {
app: kintone.app.getId(),
id: recordID,
record: {
フィールドコード: {
value: (フィールド値)
},
}
}
return kintone.api(kintone.api.url('/k/v1/record.json', true), 'PUT', body2, (resp2) => {
console.log(resp2);
}, (error) => {
console.log(error);
});
});
ご回答ありがとうございます。
教えていただいた方法で実装できました。
TO 村濱一樹さん
async/awaitを使いこなせるようにもう少し勉強してみます。
TO Yuki Minamitaniさん
シンプルなやり方ですね。ありがとうございます。
system
(system)
クローズされました:
5
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。