更新処理について工夫したい。

お疲れ様です。前日にも更新処理について質問させていただきました。

しかし、うまくいかないため別のやり方で試したところ更新はできるようになりましたが、問題点があり修正に困っています。

 

右のアプリを作成しました。

[主アプリ]

・書籍番号が重複禁止である。

[サブアプリ]

・書籍番号がルックアップ

・重複禁止

 

[更新処理について]

例えば主アプリのレコード番号4の書籍番号00000のレコードの書名を変更し保存ボタンを押下すると、サブアプリのレコード4のレコードの書名が変更されます。

[問題点]

上記の画像の場合、

主アプリ   書籍番号 : 00000   レコード番号 : 4

サブアプリ 書籍番号  :  00000    レコード番号  : 3

主アプリの書籍番号00000のレコードを更新した場合、現状あり得ませんがサブアプリのレコード番号4のレコードを更新しに行きます。

つまり、別のレコードを更新してしまう可能性がでてきます。

 

どうにか、レコード番号でなく書籍番号が同じレコードを更新する処理にしたいのですがうまくいきません。よろしくお願いいたします。

 

以下がレコード番号をidとして作成した処理です。

/*
* ◇レコード編集画面で保存ボタンをクリック時イベント
*
* ・
*/
(function(){
“use strict”;
kintone.events.on([“app.record.edit.submit”], function(event){

var body = {
app: 37,
id: event.record[“レコードID”].value
};

kintone.api(kintone.api.url(‘/k/v1/record’, true), “GET”, body).then(function(res){
body.record = {
“書籍番号” : {
value: event.record[“書籍番号”].value
},
“ISBN番号” : {
value: event.record[“ISBN番号”].value
},
“書名” : {
value: event.record[“書名”].value
},
“書名カナ” : {
value: event.record[“書名カナ”].value
},
};

kintone.api(kintone.api.url(‘/k/v1/record’, true), “PUT”, body);

});

return event
});

})();

SAKAgogo様

お世話になっております.
cstapの江田と申します.

ルックアップフィールドは重複禁止に設定できないので,はじめに「レコードの一括取得(クエリで条件を指定)」を使って更新するべきサブアプリのレコードのレコード番号を取得してから,「レコードの更新(1件)」を使って更新を行うとよいと思います.

(function(){"use strict";kintone.events.on(["app.record.edit.submit"],function(event){varsubApp=37;returnkintone.api(kintone.api.url('/k/v1/records',true),"GET",{app:subApp,query:'書籍番号 = "'+event.record["書籍番号"].value+'"'}).then(function(response){returnkintone.api(kintone.api.url('/k/v1/record',true),"PUT",{app:subApp,id:response.records[0]["レコード番号"].value,record:{書籍番号:{value:event.record["書籍番号"].value},ISBN番号:{value:event.record["ISBN番号"].value},書名:{value:event.record["書名"].value},書名カナ:{value:event.record["書名カナ"].value}}}).then(function(){returnevent;});});});})();