障害・更新情報 English Chinese

kintone plugin series

Boost!イベント

Boost!シリーズのプラグインは、それぞれのプラグインで発生するイベントについて、JavaScriptを使用して、独自の処理を追加することが出来るようになっております。

イベントタイプ毎の詳細につきましては以下を参照して下さい。

イベント処理の記述方法

ハンドラーを様々なイベントにアタッチする方法を紹介します。

イベントハンドラーを登録する

構文
kb.event.on(type, handler)
プロパティ
パラメータ名 指定する値 説明
type 文字列、または文字列の配列 イベントハンドラーをバインドする対象のイベントタイプ、またはイベントタイプの配列を指定します。
handler 関数

イベント発生時に実行されるハンドラーです。

イベントのハンドラー内でPromiseオブジェクトをreturnすると、非同期処理の完了を待って次の処理を開始します。

戻り値
ありません。
サンプル
(() => {
	"use strict";
	const handler = (event) => {
		console.log(event);
	};
	kb.event.on('kb.view.load', handler);
})();

イベントハンドラーを削除する

構文
kb.event.off(type, handler)
プロパティ
パラメータ名 指定する値 説明
type 文字列、または文字列の配列 削除対象のイベントハンドラーをバインドしたイベントタイプ、またはイベントタイプの配列を指定します。
handler 関数

削除対象のイベントハンドラーです。バインド時と同一のイベントハンドラーを指定します。

戻り値
ありません。
サンプル
(() => {
	"use strict";
	const handler = (event) => {
		console.log(event);
	};
	kb.event.on('kb.view.load', handler);

	kb.event.off('kb.view.load', handler);
})();

eventオブジェクトで実行できる操作

eventオブジェクトで実行できる操作を紹介します。

フィールドの値を書き換える

イベントハンドラーがレコードオブジェクトのフィールドの値を上書きしてイベントオブジェクトを返す場合、レコードのフィールドはオブジェクトのそれらの値で更新されます。

サンプル
(() => {
	"use strict";
	kb.event.on('kb.change.field_1_', (event) => {
		const record = event.record;
		if (record.field_1_.value=='')
		{
			record.field_2_.value=='option1';
		}
		return event;
	});
})();

ルックアップを自動取得する

イベントハンドラがlookupフィールドのlookupプロパティにtrueを入力し、イベントオブジェクトを返す場合、それらのlookupフィールドの取得を自動で行います。

lookupフィールドをクリアする場合は、valueプロパティを空値にした状態で、lookupプロパティにtrueを入力します。

サンプル
(() => {
	"use strict";
	kb.event.on('kb.edit.load', (event) => {
		const record = event.record;
		if (!record.field_3_.value)
		{
			record.field_3_.value=1;
			record.field_3_.lookup=true;
		}
		return event;
	});
})();

後続処理を中止させる

イベントハンドラがerrorプロパティにtrueを入力し、イベントオブジェクトを返す場合、後続処理を含む操作がキャンセルされます。

サンプル
(() => {
	"use strict";
	kb.event.on('kb.create.submit', (event) => {
		const record = event.record;
		if (record.field_1_.value=='')
		{
			kb.alert('No value entered.');
			event.error=true;
		}
		return event;
	});
})();