Cybozu developer networkのTipsのURL:
https://developer.cybozu.io/hc/ja/articles/202640930
今回は保存時の自動採番は、使う場面によってどんな番号にしたいかが変わります。
Customineの自動採番機能は、幅広い採番形式に対応することができますので、その一例をご紹介します。
また、今回は保存直前に情報ダイアログを出し、そこに自動採番した値を表示してみましょう!
Customineの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。
アプリのフォーム
アプリはkintone アプリストア の「商品見積書パック」に含まれる「見積書」アプリを使います。
フィールド設定
「見積番号」フィールドは「値の重複を禁止する」、「必須項目にする」にチェックを入れる。
目標とする採番の形式
日付が2018-12-11の場合
20181211-E001,20181211-E002,20181211-E003
ただし、-Eの後の3桁の連番は通し番号で、日ごとにリセットされるわけではありません。
Customineの設定
自動採番の設定
やることの設定
「やること」:「自動採番を行う」を使用します。
「アプリ単位の採番」:ドメイン内の全アプリの通し番号にする必要はないので、「アプリ単位で採番」を選択します。
「ゼロ埋め」:今回の形式では「する」を選択します。
「桁数」:今回の形式だと3桁です。
「前につける文字列」:「=format(now(),"YYYYMMDD") & "-E"」と入力します。
「format(now(),"YYYYMMDD") 」でformat関数を使用して現在の日付を変換して、そこに「& "-E"」でハイフンとEを結合しています。
「採番サイクル」:今回は通し番号なので、「なし」を選択します。
「タイムゾーン」:採番サイクルが切り替わる基準とするタイムゾーンを選択します。日本の場合は「日本標準時間」を選択します.。
条件の設定
採番のタイミングはレコードが作成されるときにしたいので、「レコードを保存する直前(削除時は除く)」を選択します。
ただし、これだけだとレコードを保存するたびに新しい番号に更新されてしまうので、レコードを作成するときの一度しか実行されないように、条件を追加します。
条件「フィールド値が特定の値ならば」を追加し、対象となるフィールドを「見積番号」に、条件を「等しい」に設定します。比較値は空欄にしておきます。
こうすることで、「見積番号」フィールドが空白の時のみ自動採番が実行されます。
情報ダイアログ表示設定
つづいて、自動採番によって見積番号が作成された後、作成された番号が表示されるダイアログを表示してみましょう。
やることの設定
「やること」:「情報ダイアログを表示する」を使用します。
「メッセージ入力」:情報ダイアログに表示するテキストを入力します。表示するテキストは文字を装飾することができるほか、式やリンクを埋め込むことができます。
今回は「見積番号${$1}を登録します」と入力しましょう。${$1}はアクション番号1、つまり自動採番で作成された見積番号を参照します。
条件
この情報ダイアログはレコード保存直前に表示したいですが、見積番号を作成してからでないと、ダイアログ内に見積番号を表示できないので、「他のアクションの実行が完了した時」と使って、自動採番アクションの直後に表示するようにします。
編集不可設定
自動で入力される部分は手入力で編集する必要がありません。特に見積番号などは変更してはいけないので誤って変更してしまわないように、編集不可にしてしまうのが望ましいでしょう。
やることは「フィールドを無効化する」を選択し、条件には「追加・編集画面を表示した時」を選択します。
一覧画面でも編集できないように、「一覧画面の鉛筆を押した時も含める」にしておきましょう。
レコード再利用時クリア設定
レコード再利用時にはコピー元の見積番号もコピーされてしまいます。
これでは保存時に、見積番号が新しいものにならず、見積番号が重複してエラーになり、レコードの保存ができませんね。
そこで、レコード再利用時には見積番号をクリアしましょう。
やることは「フィールド値をクリアする」を選択し、条件には「再利用モードで追加画面を表示した時」を選択します。
上のように設定が完了したら、「kintoneアプリへ登録」し、動作を確認してみましょう!
追加画面で見積番号フィールドが編集不可になっています!
また、レコード再利用時でも空になっています。
保存前にダイアログに採番された見積番号が表示されるようになっています!
まとめ
いかがでしょうか?
自動採番の形式は柔軟に設定することができます。それぞれで使いやすい形式になるように変えてみてくださいね!