顧客No(テキスト)を更新した際に、顧客Noに紐づいている他のアプリのルックアップフィールドに登録されている該当する複数レコードの顧客Noも一括で更新したいと考えています。
例:顧客管理アプリ.顧客No(文字列_1行) 13→T0001
意向チェックシートアプリ.顧客No(ルックアップ) 13→T0001
「複数アプリへのレコード一括処理」を見たり、他の投稿などもみながら、試行錯誤しましたが、どうにもうまくいきません。
確認できたことは以下の通りです。
①bodyのrequests内が一つだと動作します。(下のコードの意向チェックシートの部分は単体でもエラーになりますが)
②意向チェックシートアプリの更新で、更新するレコードの指定をqueryではなくidで直接していすると動作する。(その場合でも、①の通り、顧客管理アプリの更新と合わせると動作しませんが)
③/k/v1/bulkRequestではなく、/k/v1/recordに代えて意向チェックシートのルックアップでない文字列_1行のフィールドの更新を試すと、queryで指定するとエラーとなるが、idで指定すると動作した。
④上記③において、更新フィールドをルックアップフィールドに変更すると、エラーとなった。
以上です。
おそらく多くの改善点が必要なような気がいたしますが、やりたいことは冒頭に記載している内容です。
そのため、それを実現できる他の方法やヒントなどもあればご教示いただけますと幸いです。
よろしくお願いします。
kintone.events.on([
'app.record.edit.submit.success',
'app.record.create.submit.success',
'mobile.app.record.edit.submit.success',
'mobile.app.record.create.submit.success'
],function(event) {
//window.alert('はじめようkintone JavaScript API');
var r = event.record;
//console.log(r['顧客No'].value);
var be =r.文字列__1行_更新前.value;//更新前の顧客No
var af =r.文字列__1行_更新後.value;//更新後の顧客No
var body = {
'requests': [
{//顧客管理
'method': 'PUT',
'api': '/k/v1/record.json',
'payload': {
'app': 3,
'id': be,
//'revision': 2,
'record': {
'顧客No': {
'value': af
}
}
}
},
{//意向チェックシート
'method': 'PUT',
'api': '/k/v1/record.json',
'payload': {
'app': 5,
'query': 'ルックアップ_顧客No ="' + be + '"',
//'revision': 2,
//'id': 6,
'record': {
'ルックアップ_顧客No': {
'value': af
}
}
}
}
]
};
kintone.api(kintone.api.url('/k/v1/bulkRequest', true), 'POST', body, function(resp) {
// success
console.log(resp);
}, function(error) {
// error
console.log(error);
});
/*
var body2 = {
'app': 5,
//'query': 'ルックアップ_顧客No ="' + be + '"',
'id': 6,
'record': {'ルックアップ_顧客No': {'value': af}}}
kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', body2, function(resp2) {
console.log(resp2);
})
*/
}
);//kintone.events.on終わり