こんにちは、だいちゃんです。
kintoneで、レコードを追加したときに、お礼などのメッセージを表示できるプラグインを作成しました。
実はkintoneプラグイン処女作です///
レコード登録時メッセージ表示プラグイン | udcstore
レコード新規追加の保存成功時に、任意のメッセージを表示することができるプラグインです。
毎回同じメッセージを表示することもできるほか、出現タイミングごとに5つのパターンのメッセージを保存できるので、そのユーザーが登録したレコード数に応じてメッセージを変えることもできます。
メッセージの出現タイミングは、レコードを新規追加したユーザーが作成者となっているレコード数を条件に、1/2/3/5/10/20/30/40/50回目の登録時、または、毎回、10回ごとに表示するといった設定が可能です。
メッセージの内容に加えて、メッセージ上部に表示される絵文字もパターンごとに保存できます。
ユースケースなどの詳細は note にも書いたので、そちらもご覧ください。
レコードの保存に成功したときのイベントをトリガーに、プラグインの設定情報を読みにいきます。同時に、イベントオブジェクトから作成者を取得、同アプリ内で絞り込み検索し、今回保存を行ったユーザーが作成者になっているレコード数を調べます。
該当ユーザーの作成したレコード数が判明したら、プラグインの設定値を総ナメし、1回目、5回目など回数指定の設定があれば、今回のレコード数と合致するかを調べます。合致するものがあれば、その設定値で指定したメッセージを表示します。
※ 同じタイミングが複数設定されている場合(例えば1回目が2つ設定されているなど)、下の設定が優先されるはず...
合致するものがなければ、設定値に「10回ごと」の設定があるかをチェックし、あればメッセージを表示します。
最後に、「毎回」表示する設定があるかを確認し、あればそのメッセージを表示し、なければ何も表示しません。
初のプラグイン作成だったので、ハマりポイントは多々ありましたが、その中でも特徴的なところをまとめておきます。
kintone UI Component v1.4.0以降では、コンポートの呼び出し方法が変わっています。
let dropdown = new Kucs['1.13.0'].Dropdown({
});
ずっと kuc
オブジェクトを参照しようとして、そんなもんねぇよ!って怒られ続けていました。
しかも、サンプルコードなどにあるように、定数 kuc
に Kucsオブジェクトを代入する方法だとなんかうまく行きませんでした。それは未だに謎。
入れさせてくれ~!
以下のように、配列を文字列変換して格納するという荒業に出ました。呼び出すたびにsplitで配列に戻してます。悲しい。
{"-1": "[1, 🎉, レコードの登録、ありがとうございました]"},
{"1": "[2, 🎊, 初のレコードの登録です!これからもよろしくお願いします!]"}
※ キー部分が出現タイミングを表しています。-1
は「毎回」を意味し、整数の場合は、メッセージを表示するレコード数です。
const creatorFieldCode = '作成者'; // 実際はevent.recordから取得して代入
const creatorName = 'ログイン名'; // 実際はevent.recordから取得して代入
const body = {
app: kintone.app.getId(),
fields: [creatorFieldCode],
query: `${creatorFieldCode} in ("${creatorName}")`,
totalCount: true
};
const response = await kintone.api(kintone.api.url('/k/v1/records.json', false), 'GET', body);
const recordCount = response.totalCount;
body内の query
を作るときにハマったポイントです。
見出しの通り、作成者フィールドではin演算子を使わないといけなくて、in演算子は値が1つでも括弧で囲わないといけないみたいです。また、値はダブルクォーテーションで囲う必要があるみたいです。絶対にダブルクォーテーション。
ドキュメントにもサラッと書いてあるけどしっかりハマりました。
初のkintoneプラグイン作成にしては、そこそこいい感じに作れたんじゃないかと思ってます。
ちょっと詰めが甘いかなって気がしてる部分もありますが、今回の経験を活かして、プラグイン作成も本格化させていこうと思います!
以下のインタビュー記事を読んで、業務アプリに楽しさやワクワク感を詰め込めないかな、と思ったことがきっかけで作ってみました。
【Misskey開発者syuilo氏】「楽しんでほしい」ピュアな思いがMisskeyを生んだ。異様な熱狂を放つSNSの今までとこれから | レバテックラボ(レバテックLAB)
日常業務の中だからこそ、ウザくない程度にお礼や感謝を伝える仕組み、ほしいですよね。
Gitlab CI/CDでさくらのレンサバに自動アップする
2024-12-20
kintoneのバグっぽい動き
2024-12-13
Safariで絵文字が表示されない問題
2024-12-11
ターミナル上でAIにコマンドを聞こう
2024-12-06
Gitlab CI/CDでさくらのレンサバに自動アップする
2024-12-20
kintoneのバグっぽい動き
2024-12-13
Safariで絵文字が表示されない問題
2024-12-11
ターミナル上でAIにコマンドを聞こう
2024-12-06