重複チェックプラグイン
概要
指定したフィールドのデータで重複がないかチェックします。
活用例
同一顧客名がないかチェックしたい場合などに利用できます。
注意事項
- このサイトに掲載しているサンプルプログラムは、参考用としてご提供しています。動作保証はしておりませんので、ご注意ください。
なお、これらのプログラムを使用したことによるトラブルや損害については、責任を負いかねますので、あらかじめご了承ください。
サポート窓口へお問い合わせいただいても、対応はできかねますのでご了承ください。 - JavaScriptプラグインは、プロフェッショナルコースで使用できます。
制限事項
- レコード作成・編集画面のみ動作します。
- 対象フィールドにはテキストタイプのみ選択可能です。
- チェック可能なレコード件数は REST API の取得制限数と同じです。
プラグインの機能
-
設定画面
テキストフィールドから、重複チェックを行いたいフィールドを選択します。 -
プラグイン
入力した顧客名が既に登録されていないか、登録データを取得してチェックします。登録ボタン押下時に、エラーの場合は下記のアラートを表示し、登録処理を中止します。
注意アプリのレコード数が REST API の取得制限数以下の場合に利用可能です。
開発手順
STEP1:設定画面
プラグインを追加したアプリのフィールド一覧を取得し、設定の選択肢として表示します。
フィールド一覧 の取得には、REST API を使用します。
プラグイン設定用にフィールド一覧を取得します。(config.js)
// プラグイン設定情報する (アプリIDの取得用)
const config = atPocket.plugin.app.getConfig();
// フィールド一覧取得API実行する
atPocket.api('apps/'+ config.appId +'/fields', 'GET', {}, function(result) {
// 成功時に実行する処理を記載
// セレクトボックスの選択肢にフィールド一覧をセットします
・・・
}, function(result) {
// エラー時に実行する処理を記載
・・・
});
プラグイン設定表示用のHTMLを記載します。(config.html)
<div class="config_form">
<div class="config_row">
<div class="config_caption">
対象フィールド
</div>
<div class="config_input">
<div>
<select id="check_field" name="check_field">
<option value="">(未選択)</option>
</select>
</div>
</div>
</div>
</div>
STEP2:プラグイン本体
対象フィールドを含むレコード一覧を取得して、入力データと同じ値がないかチェックします。
レコード一覧 の取得には、REST API を使用します。
レコード作成画面/レコード編集画面で登録ボタンクリック時に、レコード一覧と入力データを比較します。(plugin.js)
// レコード作成画面/レコード編集画面で登録ボタンクリック時
atPocket.events.on(['app.record.create.submit', 'app.record.edit.submit'], async function(event){
// プラグイン設定を取得する
const config = atPocket.plugin.app.getConfig();
// 重複チェック対象フィールド
const checkField = config.check_field;
// REST APIを使用して、レコード一覧を取得する
const recordList = await atPocket.api('apps/'+ event.appId +'/records', 'GET', {fields: checkField}, function(result){});
// 重複していないかチェック
・・・
if(isDuplicate) {
alert("同じデータが既に登録されています。");
return false;
}
});
利用しているOSSのライセンス情報
なし