自動採番は、やること「自動採番を行う」で行うことができますが、採番は1から始まり、任意の番号からの採番開始には対応していません。
任意の番号から開始する手順は次のようになります。
「自動採番を行う」で採番する
1の採番結果に、採番のスタート値としたい値-1を足す
例:採番を100からスタートしたい場合は99を足す
次から、任意の番号から採番を開始する例をご紹介します。
いずれも、採番のスタート値は100としています。
例1 採番キーを使用しない場合
ここでは採番キーを使用せず、アプリ内での通し番号を採番したい場合の例をご紹介します。
この例を試すには、次のフィールドを持ったアプリを作成してください。
※フィールド名とフィールドコードは同じものを指定します
1-1 「自動採番を行う」で採番する
このアクションでは、やること「自動採番を行う」を選択します。
自動採番で採番された数値を後で計算に使うので、ゼロ埋めやプレフィックスの指定は行いません。
具体的な各パラメータは次のように設定してください。
フィールド:指定しない
アプリ単位の採番:アプリ単位で採番
ゼロ埋め:しない
桁数:0
前につける文字列(プレフィックス):指定しない
後ろにつける文字列(サフィックス):指定しない
採番サイクル:なし
タイムゾーン:日本標準時間
採番キー:指定しない
この「やること」に対し、条件「レコードを保存する直前(削除時は除く)」、「現在の画面が追加画面ならば」を指定します。
これは、採番結果の番号が飛ぶ(1,2,4のように3が飛ぶ)可能性を下げるため、このような条件の組み合わせにしています。
というのも自動採番を行う「やること」は、採番結果が保存される・されないに関わらず、「やること」が実行された段階で数字(自動採番のカウント)が進みます。それに対し、この組み合わせで動かしてもらうと、レコードを保存する直前かつ追加画面の場合のみ動くようになるので、1レコードにつき1回だけ採番が実行されるようになり、結果として数字が飛んでしまう可能性を減らせます。
なお、レコード保存に失敗した場合など、絶対に数字が飛ばないわけではありませんのでその点はご注意ください。
1-2 採番を100からスタートさせる
採番を100からスタートさせるため、採番結果に99を足した値を採番結果フィールドにセットします。
やること「数値をフォーマットする」を使います。
数値には、アクション番号11で採番した数値に99を足す式を指定します。なお自動採番は「1」から始まるため、次のように指定すれば自動採番を100からスタートすることができます。
数値:= $11 + 99
また、「0100」のような形式で採番結果をフォーマットするため、次のようにパラメータを指定します。
整数部の桁数:4
整数部をゼロ埋めするか:整数部をゼロ埋めする
値のセット先フィールドは「採番結果_キーなし」とします。
このアクションには条件「他のアクションの実行が完了した時」を指定します。
採番が終わった後に実行したいので、アクションには「11」を指定しました。
以上で、アプリ内での通し番号を採番したい場合の100から採番を行うカスタマイズは完成です。
「kintoneアプリへ登録」し、実行してみると下記のような結果になりました。
その後、新しいレコードを作成&保存すると0101、0102・・・とカウントアップしていきます。
例2:採番キーを使用する
この例では、レコードのフィールド値によって採番の単位を変えて採番する場合の例を示します。
この例を試すには、次のフィールドを持ったアプリを作成してください。
※フィールド名とフィールドコードは同じものを指定します
アプリの具体的なイメージは次のようなものです。
この時、「コード」フィールドに何らかのカテゴリー(”DR”や”FR”のような)が入力され、レコードを保存すると、「採番結果_キーあり」に”DR0001”のような採番結果がセットされる というカスタマイズはどう設定すれば良いのでしょうか?
やること「自動採番を行う」で、「採番キー」パラメータを使うとこのような動きを実現する事ができます。
例えば商品が飲み物の場合は「コード」フィールドに値「DR」が入っており、この時の採番は「DR0100」となり、またフルーツの場合も同様に「コード」フィールドに値「FR」が入っていて、採番は「FR0100」となるように、採番をコード毎などの単位で変えたい時には、「採番キー」パラメータに「コード」フィールドの値を含めた採番キーが設定されるようにします。
ここでご紹介するアプリの動きとしては、「コード」フィールドに”DR”や”FR”のようなカテゴリーを指定し、レコードを保存すると「採番結果_キーあり」に”DR0001”のような採番結果がセットされます。
また、今回はコードがDRであれば”DR0100”、FRであれば”FR0100”から始まるようにカスタマイズしていきます。
2-1 「自動採番を行う」で採番する
このアクションでは、やること「自動採番を行う」を選択します。
自動採番で採番された数値を後で計算に使うので、ゼロ埋めやプレフィックスの指定は行いません。
具体的な各パラメータは次のように設定してください。
フィールド:指定しない
アプリ単位の採番:アプリ単位で採番
ゼロ埋め:しない
桁数:0
前につける文字列(プレフィックス):指定しない
後ろにつける文字列(サフィックス):指定しない
採番サイクル:なし
タイムゾーン:日本標準時間
採番キー:= コード
ここでのパラメータのポイントは「採番キー」です。
「コード」フィールドの値を指定していますが、このように指定することで、「コード」フィールドの値ごとの採番が可能となり、これによりDR0100、DR0101……や、FR0100、FR0101……のように、採番キーの値ごとの採番ができるわけです。
この「やること」に対し、条件「レコードを保存する直前(削除時は除く)」、「現在の画面が追加画面ならば」を指定します。
指定している理由は前述の例1(1-1 の条件の箇所)と同様になります。
2-2 採番を100からスタートさせる
採番を100からスタートさせるため、採番結果に99を足した値を採番結果フィールドにセットします。
やること「数値をフォーマットする」を使います。
数値には、アクション番号7で採番した数値に99を足す式を指定します。
パラメーターはほぼ例1(1-2)と同様のため、同様となるパラメータについては説明を省くのですが、1つ異なる点があります。
今回の例では、「セット先フィールド」にはフィールドを指定しません。
というのも、この「やること」では計算結果を「0100」の形式に整形のみを行い、採番結果フィールドへのセットは次のアクションで行うためです。
このアクションには条件「他のアクションの実行が完了した時」を指定します。
採番が終わった後に実行したいので、アクションには「7」を指定しました。
2-3 コードの値と併せてフィールドにセットする
最後に、採番結果”0100”を”DR0100”の形式で「採番結果_キーあり」フィールドにセットします。
やること「フィールドに値をセットする」を選択します。
セット先フィールドは「採番結果_キーあり」です。
値に「= コード & $8 」と指定することで、コードフィールドの値”DR”と採番結果”0100”を結合した、”DR0100”のような結果がセットされます。
このアクションには条件「他のアクションの実行が完了した時」を指定します。
採番値をフォーマットした後に実行したいので、アクションには「8」を指定しました。
以上で、採番キーごとの採番でかつ、100から採番を行うカスタマイズは完成です。
「kintoneアプリへ登録」し、実行してみると下記のような結果になりました。
おわりに
この記事では、任意の番号から自動採番を行う例を2つご紹介しました。
複雑な採番も、複数のやることを組み合わせると実現できる場合があります。
ぜひ、色々と試してみてください!