レコード保存後イベントを使って自動採番をシンプルに実装する方法

フォローする

(著者:近本 昌也)

本Tipsは2016年8月のアップデートで追加される新機能を利用しています。アップデート前は動作しませんのでご注意ください。

はじめに

2016年8月のアップデートでレコード追加/編集画面の保存成功後イベントが追加されました。
レコードの追加/編集、レコード一覧画面のインライン編集の保存の成功時に実行されるプログラムを記述することができます。
また、kintone側でレコードの保存が正常に完了した場合のみリクエストを送信できるので、外部システムとの連携がしやすくなりました。
(詳細はリンク先をご確認ください。)

今回のTipsでは上記のうちレコード追加画面の保存成功後イベントを利用することで、以下の機能をシンプルに実装してみます。

  • 自動採番する際のロジック変更
    これまでは、"レコード番号"を自動採番のフォーマットに含める場合は、レコード保存実行前イベントしかないため、
    全レコードを取得して+1した値を入れていた。
    ⇒単純に自レコードのレコード番号を取得できるようになるためシンプルに書ける!

  • 文字連結カスタマイズ時のロジック変更
    文字連結する際に、レコード保存前イベントでは取得できない情報があった。
    ⇒作成者、レコード番号、作成日時などを連結可能!

それでは実際に実装してみましょう。

完成イメージ

レコード追加画面の保存成功後、「交通[作成日時]-[レコード番号]」というフォーマット で採番されていることが確認できます。
(確認のために本Tipsではalertを出しています。)

レコード追加画面の保存成功後

レコード詳細画面

アプリの準備

今回は自動採番機能を試すために、アプリストアから「交通費申請」アプリを追加し、下記のフィールドを追加しました。

フィールド名 フィールドコード フィールドタイプ
申請No submit_No 文字列(1行)

PC用のJavaScriptファイル

詳細設定から「JavaScript / CSSによるカスタマイズ」を開き、Cybozu CDN から次のライブラリを指定してください。

  • Moment.js
    https://js.cybozu.com/momentjs/2.13.0/moment.min.js (version 2.13.0 を利用)

ソースコード

以下のソースコードを記述します。

ソースコードの解説

前半部分では採番対象のフィールドに非活性処理を行っています。

後半部分ではレコード追加画面の保存成功後イベント時に「作成日時」と「レコード番号」を結合し、レコードの更新APIによって申請Noフィールドを結合した値で更新します。
※レコードの更新処理に kintone.Promise を利用しています。詳細はこちら

関連Tips

最後に

今回はレコード追加画面の保存成功後イベントを使って自動採番をシンプルに実装する方法を紹介させていただきました。
関連Tipsと合わせて実装方法がどのように変わったのか、一度見比べてみてください。

このTipsは、2016年8月版で確認したものになります。

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

ログインしてコメントを残してください。
Powered by Zendesk