Advent Calendar ネタ用に作ったエラー発生プラグインをご紹介
イベント実行ログとエラーを発生させるだけという機能です。
エラー発生プラグイン概要
複数プラグインの動作を確認するため、エラー発生1プラグイン、エラー発生2プラグインと二つあります。
機能は、まったく同じものです。
プラグインは、インストール順が新しいものから順番に実行されます。
プラグイン設定画面
イベント処理時のリターン情報の扱いとエラー発生のオプション指定があります。
オプションは、一つだけ有効にできます。
ちょっと便利なプラグインを流用したので、設定画面もほとんど一緒。
- F01: return; // event 情報無しでリターン
- F02: return null; // nullでリターン
- F03: return false; // falseでリターン
- F04: return "XXXX"; // "XXXX" でリターン
- F05: return undefined; // undefined でリターン
- F06: // return なし
- F07: 未定義変数エラー
- F08: 未定義変数エラーハンドリング
エラー発生ログ
レコード編集画面の実行ログです。
エラー発生1プラグインが、編集画面表示イベント内でエラーになり、後続のエラー発生2プラグインのイベント処理が実行されていません。
こんな感じで、プラグイン設定でプラグインの動作をログで確認できます。
エラー発生処理概要
指定されたプラグイン設定によって、イベント処理の終了方法を変えるだけです。
エラー発生処理-抜粋.js
"use strict";
console.log('plugin1 start:');
...
// 詳細画面、編集、追加画面
kintone.events.on(["app.record.index.show","app.record.detail.show","app.record.edit.show","app.record.create.show"], function(event) {
console.log('plugin1 event:', event);
if (tinyInfosById.F01.state) {
console.log('plugin1 event: 無しでリターン');
return; // event 無しでリターン
}
if (tinyInfosById.F02.state) {
console.log('plugin1 event: nullでリターン');
return null; // nullでリターン
}
if (tinyInfosById.F03.state) {
console.log('plugin1 event: falseでリターン');
return null; // falseでリターン
}
if (tinyInfosById.F04.state) {
console.log('plugin1 event: "XXXX" でリターン');
return "XXXX"; // "XXXX"でリターン
}
if (tinyInfosById.F05.state) {
console.log('plugin1 event: undefined でリターン');
return undefined; // undefinedでリターン
}
if (tinyInfosById.F07.state) {
xxxx; // 未定義変数エラー
}
if (tinyInfosById.F08.state) {
try {
xxxx; // 未定義変数エラーハンドリング
}
catch(err) {
console.log('plugin1 error:', err);
}
}
if (tinyInfosById.F06.state) {
console.log('plugin1 event: return なし');
}
else {
return event;
}
});