![見出し画像](https://assets.st-note.com/production/uploads/images/103865993/rectangle_large_type_2_1529e2ab757252d2b39574f4c5cb2dbd.png?width=1200)
kintone制限値チャレンジ3 – スペースの上限値。 「スペースは無限ではなく…そしてメッセージは青かった」
今回調べたこと
制限値を超えるスペース作成について
通常のスペースかゲストスペースかに関係なく、制限値を超えたスペースを作成しようとするとメッセージが表示されて作成が中止されることがわかりました。
但し、よく出てくる赤いエラーメッセージではなく、青いメッセージが表示されることがわかりました。
![](https://assets.st-note.com/img/1682375705720-7wJVaHTbAs.png?width=1200)
通常のスペースとゲストスペースの制限値の関係について
通常のスペースとゲストスペースは、個別に管理されており、それぞれが上限値をチェックしていることがわかりました。
例えば通常のスペース数が上限に達しているとき、通常のスペース作成は行えないのですが、ゲストスペースなら作成できることがわかりました。
![](https://assets.st-note.com/img/1682376013114-khdSxGEt31.png?width=1200)
調べた理由
kintoneのヘルプ「制限値一覧」では、
作成できるスペースの数に関する記載はありません。
制限値一覧をみただけでは、スペースの数に制限がないように見えます。
でもkintoneの料金ページで、スタンダードコースとライトコースを紹介する表に、「~500個」といった記載があります。やっぱり制限されてそう…
これだけでは、501個目のスペースを作成したときはどうなるのかや、通常のスペースが500個ある状態で、ゲストスペースを作成できるのかがわからないので、制限値を超えた場合の動作を確認することにしました。
確認方法
プログラムで通常のスペースを作成する
500個のスペースを手動で作成していたら、体力がもたないので、フィールドの制限値を調べた時と同様に、REST APIを使ったプログラムを実行してスペースを自動作成しました。使ったREST APIについては下記リンク先に詳細が記載されています。
今回用意したJavaScriptのプログラムは下記となります。
/**
*
* createSpace.js
*
**/
(() => {
"use strict";
kintone.events.on(["app.record.index.show"], (event) => {
const mButton = document.createElement("button");
mButton.id = "my_index_button";
mButton.innerText = "スペース追加";
mButton.onclick = btn_click;
kintone.app.getHeaderMenuSpaceElement().appendChild(mButton);
});
async function btn_click() {
for (let i = 0; i < 500; i++) {
console.log("スペース作成" + i + "番目");
const resp = await go_RestAPI(i.toString().padStart(3, "0"));
if (resp == undefined) return;
}
alert("作成できました");
}
async function go_RestAPI(spaceNo) {
// 下の「id: 3」は私の環境のスペーステンプレートのidです。
// 他の環境でこのプログラムを動かすには、
// 事前にスペーステンプレートを作成しておき、そのidを指定してください。
const body = {
id: 3,
name: "スペース_" + spaceNo,
members: [
{
entity:{
type: "USER",
code: "kanrisya001@gmail.com",
},
isAdmin: true,
}
],
}; // REST-APIに渡すパラメタ
const resp1 = await kintone
.api(kintone.api.url("/k/v1/template/space.json", true), "POST", body)
.catch((error) => {
console.log("error", error);
alert(error.message);
const resp1 = undefined;
});
return resp1;
}
})();
このプログラムでは kintone のレコード一覧画面にボタンを配置し それをクリックすることで 500回の繰り返し処理を行っています。繰り返し処理の中身は以下のようなものです。
繰り返し回数に応じた連番を用意する。
その番号でスペースの名前を準備する。
REST-APIを使ってスペースを追加する。
エラーが発生したら、その時点で処理を終了する。
なお、このプログラムを実行するには、事前にスペーステンプレートを用意しておく必要があります。下記のヘルプを参考に、スペーステンプレートを作成しておき、そのidを指定してください。
このプログラムをアプリに追加し、実行することで、約500個のスペースを作成することができました。(※使っていた環境にいくつかスペースがあったので、実際には500回手前でエラーが発生し、処理終了となりました。) その後、[スペース管理]画面でスペース数を確認するとちゃんと500個となっていました。手順は以下のような感じです。
![](https://assets.st-note.com/img/1682376844181-F2V6jSGOhs.png?width=1200)
![](https://assets.st-note.com/img/1682376917864-dy2LGkoG8V.png?width=1200)
![](https://assets.st-note.com/img/1682376975742-eFXBW39JeQ.png?width=1200)
![](https://assets.st-note.com/img/1682377023907-3fHHAIkVB3.png?width=1200)
![](https://assets.st-note.com/img/1682377222695-YdXu8aglIv.png?width=1200)
![](https://assets.st-note.com/img/1682377314101-HVMsnb4hOv.png?width=1200)
![](https://assets.st-note.com/img/1682377421070-G9gWAvgLOa.png?width=1200)
![](https://assets.st-note.com/img/1682377579297-BJKJ3v7uJ0.png?width=1200)
![](https://assets.st-note.com/img/1682377753137-5dyl0EwFze.png?width=1200)
![](https://assets.st-note.com/img/1682377818102-izcmksujBH.png?width=1200)
![](https://assets.st-note.com/img/1682377908826-Ndx4GeuAGN.png?width=1200)
確認 - 501個目のスペースを作成できるか
ここから制限値があるかどうか確認していきます。
ポータル画面からスペースの作成操作を行ったところ、[スペースの作成]ダイアログが表示される前に「スペースを追加できません。スペース数がライセンスの上限に達しています。」とメッセージが表示され、作成出来ないことが確認できました。
そして意外にもメッセージはエラー表示の赤ではなく、情報メッセージのような青い背景となっていました。メッセージは表示するけれどエラー扱いではないのかもしれません。
![](https://assets.st-note.com/img/1682377958856-IIOhrP2YKk.png?width=1200)
![](https://assets.st-note.com/img/1682378011454-2ysZkc4TDs.png?width=1200)
確認 - ゲストスペースなら作成できるのか
通常のスペースが上限に達している状態で、ゲストスペースは作成できるのでしょうか?
ポータル画面からゲストスペースの作成操作を行ったところ、問題なくゲストスペースを作成することが出来ました。上限値は別々で管理しているようです。
![](https://assets.st-note.com/img/1682378092839-uaLc9ZO5sI.png?width=1200)
![](https://assets.st-note.com/img/1682378139806-CztJNcNZxq.png?width=1200)
![](https://assets.st-note.com/img/1682378198328-mN6rZ3kv4H.png?width=1200)
![](https://assets.st-note.com/img/1682378237664-YgorPdpZYb.png?width=1200)
ゲストスペースも上限値チャレンジ
ゲストスペースが作れることが分かったので、ゲストスペースも上限まで作ることにします。
通常のスペースを作成するときに使ったプログラムを改造し、ゲストスペースも500個作成してみる事にしました。
結果、通常のスペースが500個、ゲストスペースが500個、合わせて1000個を作成する事が出来ました。
// さきほどのスペース追加プログラムに一行追加。
// 下記の「isGuest: true,」という1文を追加すればゲストスペースを作成してくれます。
const body = {
id: 3,
name: "スペース_" + spaceNo,
members: [
{
entity:{
type: "USER",
code: "kanrisya001@gmail.com",
},
isAdmin: true,
}
],
isGuest: true,
}; // REST-APIに渡すパラメタ
![](https://assets.st-note.com/img/1682378571457-ui99mLXROZ.png?width=1200)
![](https://assets.st-note.com/img/1682379047237-JYniQvYYp2.png?width=1200)
確認 - 1001個目のゲストスペースを作成できるか
通常のスペースもゲストスペースも上限に達しました。
もう何も追加できないはずですが、念のため、ゲストスペースの追加をやってみました。
結果、[ゲストスペースの作成]ダイアログが表示される前に「スペースを追加できません。スペース数がライセンスの上限に達しています。」とメッセージが表示され、作成出来ないことが確認できました。
この場合もさきほどと同じくメッセージの背景色は赤ではなく青になっていました。
![](https://assets.st-note.com/img/1682379120392-A1RHHODeiS.png?width=1200)
ちなみに通常のスペースとゲストスペースは上限数こそ別々で管理されていますが、IDは同じ番号体系を共有していました。通常のスペースのIDが500番まで振られていた時に、ゲストスペースを作成するとそこには501番のIDが振られます。
![](https://assets.st-note.com/img/1682379130286-hqjWPn02U5.png?width=1200)
確認後に行ったこと
プログラムで通常のスペースを削除する
アプリの時は、そのアプリを含むスペースを削除する事で、アプリの一括削除が出来たのですが、スペースの場合は良い策が思いつかず、削除するプログラムを用意する事にしました。使ったREST APIについては下記リンク先に詳細が記載されています。
今回用意したJavaScriptのプログラムは下記となります。
/**
*
* deleteSpace.js
*
**/
(() => {
"use strict";
kintone.events.on(["app.record.index.show"], (event) => {
const mButton = document.createElement("button");
mButton.id = "my_index_button";
mButton.innerText = "スペース追加";
mButton.onclick = btn_click;
kintone.app.getHeaderMenuSpaceElement().appendChild(mButton);
});
async function btn_click() {
for (let i = 0; i < 1000; i++) {
console.log("スペース削除" + i + "番目");
const resp = await go_RestAPI(i);
// if (resp == undefined) return;
}
alert("削除できました");
}
async function go_RestAPI(spaceNo) {
const body = {
id: spaceNo + 1,
}; // REST-APIに渡すパラメタ id は作成結果に応じて適宜設定します。
// 通常のスペースを削除するときとゲストスペースを削除するときのURLは異なるので注意。
const resp1 = await kintone
.api(kintone.api.url("/k/v1/space.json", true), "DELETE", body)
.catch((error) => {
console.log("error", error);
alert(error.message);
const resp1 = undefined;
});
return resp1;
}
})();
このプログラムでは kintone のレコード一覧画面にボタンを配置し それをクリックすることで 1000回の繰り返し処理を行っています。繰り返し処理の中身は以下のようなものです。
繰り返し回数に応じたidを用意する。
REST-APIを使い、ID指定でスペースを削除する。
エラーが発生しても、繰り返し処理を継続する。
このプログラムを実行することで、通常スペースを削除することができました。繰り返し処理で指定したIDのスペースがゲストスペースの場合は、削除に失敗する為、エラーが発生しても繰り返し処理を止めないようにしました。
プログラムでゲストスペースを削除する
通常のスペースの削除と同様に、削除するプログラムを用意しました。使ったREST APIについては下記リンク先に詳細が記載されています。
今回用意したJavaScriptのプログラムは下記となります。URLのみゲストスペース用になっていますが、処理の流れは通常のスペースを削除するときと同じです。
/**
*
* deleteGuestSpace.js
*
**/
(() => {
"use strict";
kintone.events.on(["app.record.index.show"], (event) => {
const mButton = document.createElement("button");
mButton.id = "my_index_button";
mButton.innerText = "Guestスペース追加";
mButton.onclick = btn_click;
kintone.app.getHeaderMenuSpaceElement().appendChild(mButton);
});
async function btn_click() {
for (let i = 0; i < 1000; i++) {
console.log("Guestスペース削除" + i + "番目");
const resp = await go_RestAPI(i);
// if (resp == undefined) return;
}
alert("削除できました");
}
async function go_RestAPI(spaceNo) {
const body = {
id: spaceNo + 500,
}; // REST-APIに渡すパラメタ id は作成結果に応じて適宜設定します。
// 通常のスペースを削除するときとゲストスペースを削除するときのURLは異なるので注意。
const resp1 = await kintone
.api(
kintone.api.url("/k/guest/" + body.id + "/v1/space.json", true),
"DELETE",
body
)
.catch((error) => {
console.log("error", error);
alert(error.message);
const resp1 = undefined;
});
return resp1;
}
})();
IDの採番を共有しているのから、ID指定だけで削除させて欲しいのですが、通常とゲストのURLが違うので、プログラムを組むのが少々面倒ですね。
さいごに
フィールドやアプリと同じように、スペースにも上限がありました。
(”上限値”と”制限値”はkintone上でなにか区別されているのかも…)
そして、メッセージの表示はなぜか「青」でした。
スペース=宇宙
だから、そこに地球があるように見せたくて青にしたのかも…。
この記事が気に入ったらサポートをしてみませんか?