お世話になっております。
Javascriptは勉強中の身です、いい方法がありましたらご教示いただきたく思います。
第11回 kintone REST APIを利用したレコード更新
https://developer.cybozu.io/hc/ja/articles/204537310-%E7%AC%AC11%E5%9B%9E-REST-API%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%9F%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E6%9B%B4%E6%96%B0
を参考に、相手先マスタアプリとそれを参照するアプリを作っているのですが
マスタアプリを参照するアプリが複数あります。(アプリA、アプリB、アプリCとします)
解説では参照先アプリが一つしかありませんが、参照先が複数ある場合は
どのように記述すればいいでしょうか?
以下のコードでアプリA(ID:10)のみの更新はできましたが、複数のアプリIDを指定する方法がわかりません。
どうぞよろしくお願いいたします。
(function() {
“use strict”;
var target = null;
kintone.events.on([‘app.record.edit.submit’, ‘app.record.index.edit.submit’], function(event) {
var appid = 10;
var target = event.record.契約先CD.value;
var manager = new KintoneRecordManager;
manager.getRecords(appid, target, function(records) {
updateLookup(appid, createPutRecords(records));
KintoneRecordManager.prototype.records = [];
KintoneRecordManager.prototype.offset = 0;
});
});
kintone.events.on(‘app.record.edit.submit’, function(event) {
var appid = 10;
var target = event.record.契約先CD.value;
var manager = new KintoneRecordManager;
manager.getRecords(appid, target, function(records) {
updateLookup(appid, createPutRecords(records));
KintoneRecordManager.prototype.records = [];
KintoneRecordManager.prototype.offset = 0;
});
});
var KintoneRecordManager = (function() {
function KintoneRecordManager() {
}
KintoneRecordManager.prototype.records = []; // 取得したレコード
KintoneRecordManager.prototype.limit = 2; // 一回あたりの最大取得件数
KintoneRecordManager.prototype.offset = 0; // オフセット
KintoneRecordManager.prototype.getRecords = function(appid, target, callback) {
kintone.api(
kintone.api.url(‘/k/v1/records’, true),
‘GET’,
{
app: appid,
query: ‘相手先CD = "’+ target + ‘" ’ + (’ limit ’ + this.limit + ’ offset ’ + this.offset)
},
(function(_this) {
return function(res) {
var len;
Array.prototype.push.apply(_this.records, res.records);
len = res.records.length;
_this.offset += len;
if (len < _this.limit) { // まだレコードがあるか?
if (callback !== null) {
callback(_this.records); // レコード取得後のcallback
}
}
else {
_this.getRecords(appid, target, callback); // 自分自身をコール
}
};
})(this)
);
};
return KintoneRecordManager;
})();
function createPutRecords(records) {
var putRecords = [];
for (var i = 0, l = records.length; i < l; i++) {
var record = records[i];
putRecords[i] = {
id: record[‘$id’].value,
record: {
“相手先CD” : {
value: record.相手先CD.value
}
}
};
}
return putRecords;
}
function updateLookup(appId, records) {
if ( records.length != 0 ) {
kintone.api(
kintone.api.url(‘/k/v1/records’, true),
‘PUT’,
{
app: appId,
records: records
},
function(resp) {
}
);
}
}
})();