はじめに
往々にして表計算ソフトでは、オートフィル機能や手入力などで採番を行うケースがありますが、重複した採番が行えてしまうといった課題が発生する事があります。
この記事では重複した採番とならず、かつ要件をkintoneとカスタマインで満たせるようなカスタマイズの実現を目指したカスタマイズについて記載します。
元々運用されていた表計算ソフト
運用:取引先ごとに、取引先コードを手入力またはオートフィルで採番していた。
課題:取引先コードの抜けや重複。同一の取引先で複数の取引先コードを採番してしまう。
検討:基本機能だけで実現できないか?
※注:この検討はうまくいかないので、結論となるカスタマイズを知りたい方は、次節「アプリの準備」からご覧ください。
まずは、基本機能だけで実現できないか? を検討してみましょう。
具体的にはレコード番号を使って自動採番が行えないかについて検討します。
レコード番号はレコードを作成したら自動的に付与されるため、これが使えるのでは?というのが頭をよぎります。なお単位記号も設定できるようなので、うまくいきそうに見えます。
ところが、設定を保存しようとするとエラーがでました。レコード番号は計算フィールドの計算式で使用できないためです。
ということで、現時点では基本機能だけだと自動採番の要件を叶えることができません。
※なお併せて説明しておくと、kintoneのレコード番号はレコードの内容をエクスポートして新たに改めてインポートする際には、レコード番号については新たな番号が割り振られてしまう特性があり、そういった意味でも主キーとしての運用には向かないフィールドです。
アプリの準備
まず、次の要領でアプリを作成してください。
※この記事内で必要となるフィールドのみ記載しています
取引先マスタ
※フィールド名とフィールドコードは同じものを指定
課題を解決するカスタマイズ
課題を解決する(自動で採番されるようにする)ため、カスタマイズを設定します。
カスタマイズは1アクションです。
やること「自動採番を行う」、条件「レコードを保存する直前(削除時は除く)」、「現在の画面が追加画面ならば」を使います。
実行結果(追加画面)
まとめ
表計算ソフトでは、往々にしてROW関数の戻り値と任意の文字列を組み合わせて自動採番を行うケースが見受けられます。
ROW関数で返される行番号に近いものとして、kintoneにはレコード番号がありますが、レコード番号はkintoneの計算フィールドの計算式で用いることができません。そのため、今回の例にある「CU-001」のような文字列の生成に使用することはできませんが、やること「自動採番を行う」を用いれば、柔軟に採番ルールを決定することができます。(課題:レコード番号は計算フィールドの計算式に使用できない)
なお、やること「自動採番を行う」を使用すれば同じ番号が取得されることはありませんが、登録されるデータ自体がkintone上で重複していないかをチェックすることはできません。そのため、そういったチェックをした場合は、kintone基本機能のフィールドの設定パラメータ「重複を禁止する」を用いて、同じ内容のレコードを二重登録しないように設定しておく必要があります。
ちなみに、既存レコードに対しては表計算ソフト上で番号をすでに取得しており、新たに登録されたレコードからkintoneとカスタマインで採番したいといったようなケースで、任意の番号から自動採番を開始したい場合は、やること「自動採番を行う」だけでは対応できないので、採番キーを用いたり、やること「数値をフォーマットする」と組み合わせて、採番結果に数字を足すことで、任意の番号からの採番を実現する事ができます。
任意の番号からの採番については、次の記事が詳しいので併せて参考にしてください。
おわりに
この記事では、kintoneとカスタマインによるカスタマイズで、重複しない採番を実現してみました。
どうでしたか? 採番が必要になった時は、この記事を参考にしてみてください!
また、ご不明点等ございましたら、チャットにてご質問ください!






