kintoneプラグイン『機能拡張スタンダード All-In』を使って自動採番を行う


[『機能拡張スタンダード All-In』](https://spica.tokyo/bluelaunch)を使用します。

#自動計算の基本的な使い方

![ss_plugin_config3_1.png](https://qiita-image-store.s3.amazonaws.com/0/67365/b491ae31-5870-cd1e-3fa9-66d57d397373.png)

1.自動計算の発生条件を設定する
2.演算内容を作成する

という工程で設定していきます。
常に自動計算を行うだけではなく、条件を判定して自動計算を行うことができます。

サンプルとして「問い合わせ管理」アプリを使用します。
自動採番で作成するデータをいれるフィールドとして「問い合わせID」という１行文字列フィールドを追加しています。

![ss_plugin_config3_2.png](https://qiita-image-store.s3.amazonaws.com/0/67365/67c8c7f5-f34b-ec3b-31f6-67940afa74d4.png)

このアプリに問い合わせIDを自動的に割りあてる機能を作っていきます。
問い合わせIDのフォーマットは

　<strong>(問い合わせ年月)-(月内の問い合わせ数)</strong>

問い合わせ数は4桁で行うこととします。

#1.発生条件を設定

まずIDの生成をレコード作成時に限定します。

![ss_plugin_config3_3.png](https://qiita-image-store.s3.amazonaws.com/0/67365/218be3aa-9429-5b4b-d0e9-98f93f724f35.png)

月内の問い合わせ数はレコードが追加されることで増加しますので、通常の編集時に自動計算を行ってIDが変わってしまうことを防ぎます。

#2.演算内容を作成する

演算内容は、
・<strong>結果の代入先</strong>
・<strong>計算方法</strong>
・<strong>演算項</strong>
を列挙していくことで作成します。

##演算1-月次インデックスの取得
<strong>結果の代入先</strong>に<strong>#A</strong>を選択。
このプラグインが自動計算を行う際に計算内容を一時的に保存しておく領域です。#A～#Fまでの6個用意されています。

![ss_plugin_config3_4.png](https://qiita-image-store.s3.amazonaws.com/0/67365/9a3f8ca2-cc05-32cb-0ea8-88467f0939ac.png)

<strong>計算方法</strong>はグレーアウトしています。1行目なので指定ができないためです。代入が行われます。

<strong>演算項</strong>は<strong>月次インデックス</strong>を選択。
アプリ内の全レコードから作成日時を元に、月内のレコード総数を取得します。

##演算2-取得した月次インデックスを4桁に0埋め

右端にある[＋]ボタンで演算項を1行追加します。代入先は1行目のみです。

![ss_plugin_config3_5.png](https://qiita-image-store.s3.amazonaws.com/0/67365/0e975551-9f28-8948-7f71-31f90fc93736.png)

<strong>計算方法</strong>は<strong>0埋め</strong>を選択。
数値を指定した桁数になるまで先頭に0をくっつけます。

<strong>演算項</strong>は<strong>4</strong>を入力。
数値が4桁になるよう、桁数に足りないぶんは0で埋めるという内容です。

ここまでで#Aに4桁の月内の問い合わせ数が代入されます。

##演算3-作成月を2桁に0埋め

作成日時から年月日時間分をそれぞれ個別の数値として利用することができます。
ただし数値としての利用ですので、今回は月を2桁の0埋めをする必要があります。
設定方法は先程までの月次インデックスの4桁0埋めと同じです。

設定行を追加の[＋]ボタンを押して設定行を追加。
発生条件をレコード作成時に限定。

![ss_plugin_config3_6.png](https://qiita-image-store.s3.amazonaws.com/0/67365/a9bc8ec5-d966-fd34-8792-a7ed11a4206c.png)

<strong>結果の代入先</strong>に<strong>#B</strong>を選択。
<strong>演算項</strong>は<strong>現在日時[月]</strong>を選択。

演算項を追加の[＋]ボタンを押して設定行を追加。

<strong>計算方法</strong>は<strong>0埋め</strong>を選択。
<strong>演算項</strong>は<strong>2</strong>を入力。

以上で#Bに2桁に0埋めされた作成月が代入されます。

##演算4-作成したいフォーマットに合わせて文字列として結合する

次は問い合わせIDへの代入となります。

設定行を追加の[＋]ボタンを押して設定行を追加。
発生条件をレコード作成時に限定。
そして先程までと同様に、設定を作成していきます。

![ss_plugin_config3_7.png](https://qiita-image-store.s3.amazonaws.com/0/67365/990089c3-6ec9-b060-e89d-87694aed2bcf.png)

<strong>代入先</strong>に<strong>問い合わせID</strong>を選択。
<strong>演算項</strong>として<strong>現在日時の年</strong>、2桁の作成月が保存されている<strong>#B</strong>、<strong>ハイフン（※直接入力）</strong>、そして4桁の月次インデックスが保存されている<strong>#A</strong>の順番に<strong>文字列結合</strong>します。

以上で自動採番の設定は終了です。

サンプルとして作成した「問い合わせ管理」アプリで動作を確認。
作成日時と月内のレコード数から問い合わせIDが作られています。

![ss_plugin_config3_9.png](https://qiita-image-store.s3.amazonaws.com/0/67365/6b5af47b-6976-ef42-22d7-a52a6ebe27c7.png)


#問い合わせIDを編集不可にする

問い合わせIDをユーザーが編集できないようにします。
自動計算ではなく「フィールド属性」のタブを選択して設定することができます。

![ss_plugin_config3_8.png](https://qiita-image-store.s3.amazonaws.com/0/67365/a5dc06c2-0756-7c4d-979d-8f96f4ae91d5.png)

この設定を行うことで問い合わせIDは詳細画面・一覧画面ともに編集を開始してもグレーアウトして編集不可の状態となります。

![ss_plugin_config3_10.png](https://qiita-image-store.s3.amazonaws.com/0/67365/80c99003-794c-9042-affa-a9ba9533a267.png)
※一覧で編集を開始したところ



---
このプラグインのその他の機能についてはこちら。
・条件書式 - [kintoneプラグイン『機能拡張スタンダード All-In』を使って条件書式を設定。CSSも使ってみる](http://qiita.com/spica/items/24027003e9dfb9363819)
・フィールド属性 - [kintoneプラグイン『機能拡張スタンダード All-In』を使ってルックアップ編集や再利用指定などなど条件毎に設定する](http://qiita.com/spica/items/73107bda2cff4a94cf41)
・選択数制御 - [kintoneプラグイン『機能拡張スタンダード All-In』を使ってユーザー選択、複数選択などの選択数を制御する](http://qiita.com/spica/items/1c3ba3927b844b6bb72b)