一覧表示後に、ボタンをクリックすると、アプリ内のレコードを取得というようなものを作成しました。
以下の手順の場合、kintoneの仕様なのか、取得データが欲しいデータとは異なりました。
何かご存じの方いらっしゃいましたら、教えて頂けると助かります。
この投稿を見てくださって有難うございます。
【手順】
1.一覧を開く
2.一覧のレコードを別タブで開き、編集して保存
3.別タブで開いている一覧に戻り、レコード取得ボタンをクリック
【上記手順で期待するデータ】
変更後の2のデータを反映した全データ
【質問】
この3の際に取得してくるレコードですが、2で変更したレコードは反映されないものなのでしょうか?アプリを開いた際に表示しているデータしか取得できないのでしょうか?
kintone.events.on("app.record.index.show", function (event) {
// データ作成ボタン押下
$("#report_data_creation_btn").on("click", function (e) {
let all_records = [];
// データ取得
new Promise((resolve) => {
var manager = new KintoneRecordManager();
manager.getRecords(function (records) {
// レコード取得後の処理
if (records.length) {
records.forEach((record, i) => {
all_records.push(record);
if (i === records.length-1) {
resolve();
}
});
} else {
resolve();
}
});
}).then(() => {
console.log('解決');
});
/**
* kintoneデータ一括取得
*/
var KintoneRecordManager = (function () {
KintoneRecordManager.prototype.records = []; // 取得したレコード
KintoneRecordManager.prototype.appId = null; // アプリID
KintoneRecordManager.prototype.query = ""; // 検索クエリ
KintoneRecordManager.prototype.limit = 500; // 一回あたりの最大取得件数
KintoneRecordManager.prototype.offset = 0; // オフセット
function KintoneRecordManager() {
this.appId = kintone.app.getId();
this.records = [];
}
// すべてのレコード取得する
KintoneRecordManager.prototype.getRecords = function (callback) {
kintone.api(
kintone.api.url("/k/v1/records", true),
"GET",
{
app: this.appId,
query: this.query + (" 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) {
// まだレコードがあるか?
_this.ready = true;
if (callback !== null) {
callback(_this.records); // レコード取得後のcallback
}
} else {
_this.getRecords(callback); // 自分自身をコール
}
};
})(this)
);
};
return KintoneRecordManager;
})();