自動採番プラグインにてソースを見るLIKEを用いたクエリで最新のレコードを取得していると思われるのですが、10万件以上レコードがあった場合には正しく採番されるのでしょうか。
kintoneの制限上、クエリの検索結果が10万件以上ある場合は絞込みが中断されます。
自動採番プラグインは以下リンクです。
https://developer.cybozu.io/hc/ja/articles/209715393-%E8%87%AA%E5%8B%95%E6%8E%A1%E7%95%AA%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3
実際にやってみていないのでわかりませんが、
自動採番プラグインのソースを見た感じ、
“query”: ‘日付 >= "’ + dtmin + ‘" and 日付 < "’ + dtmax + ‘" order by 自動採番 desc limit 1’
で、最新のレコード1件しか取ってこない(つまり、検索結果が1件)なので、大丈夫だと思います。
juridon 様
コメントありがとうございます。
自動採番プラグインの以下ソースでLIKE文で最新の番号を持つレコードを取得していると思ったのですが
kintoneではorder by や limit で絞り込む前のクエリの抽出結果が10万件以上あると絞込みを中断するため、10万件以上ある場合はそれ以上のレコードを取得できないように思います。そのため最大は10万件目にあたり毎回100001と採番されるように思うのですがどうなのでしょうか。
getLastNumberByFromAllRecords: function (targetFormat) {
var self = this;
return new kintone.Promise(function (resolve, _reject) {
var query =
self.settings.config.FIELD_CODE + ’ like “’ + targetFormat + '”';
self.getAllRecordsByApi(query)
.then(function (resp) {
var reg;
var index = 0;
if (!resp || resp.length === 0) {
resolve(self.CONSTANT.NUMBERING_DEFAULT);
return;
}
reg = self.createRegExpBySettingFormat();
for (index; index < resp.length; index++) {
if (
reg.test(resp[index][self.settings.config.FIELD_CODE].value)
) {
resolve(
self.getNumberBy(
resp[index][self.settings.config.FIELD_CODE].value
) + 1
);
return;
}
}
});
});
},
こんにちは!
すみません、ちょっとやってみないとわからないです(汗)